time="2024-05-21T16:13:08Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: `version` is obsolete" Container integration-test-federation-1 Creating Container integration-test-gateway-1 Creating Container integration-test-authorization-1 Creating Container integration-test-device-1 Creating Container integration-test-authentication-1 Creating Container integration-test-experiment-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-05-21T16:13:38Z"} device-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} device-1 | {"level":"info","message":"Device Service started successfully"} authentication-1 | {"level":"info","message":"Authentication Service started successfully"} experiment-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} authorization-1 | {"client_addr":"127.0.0.1:50474","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2024-05-21T16:13:38Z"} authorization-1 | {"client_addr":"127.0.0.1:50474","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.285592,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:38Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1716308018.9086182} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1716308018.9086974} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1716308018.9087143} 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":1716308018.9087348} 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":1716308018.9087532} 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":1716308018.908799,"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":1716308018.9092934} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1716308018.9102173} 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:55074","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2024-05-21T16:13:38.928597257Z","id":"01HYDYW1QG5PN7Y8Z49R3THD6F","name":"crosslab","updated_at":"2024-05-21T16:13:38.928597257Z"},"request_id":"c2830a2e-54d4-422f-ac18-d373056d73a3","subsystem":"openfga","timestamp":1716308018.9287207} 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:55074","raw_request":{"schema_version":"1.1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01HYDYW1RJSA5CFW6DJ1W36915"},"request_id":"ed34285c-2bba-4fb0-884f-9c4bb3715ca2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308018.9629536} authorization-1 | {"client_addr":"127.0.0.1:50474","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2024-05-21T16:13:38Z"} authorization-1 | {"client_addr":"127.0.0.1:50474","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.21589,"resp_status":204,"subsystem":"opa","time":"2024-05-21T16:13:38Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v0.64.1/opa_linux_amd64","latest_version":"0.64.1","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v0.64.1","subsystem":"opa","time":"2024-05-21T16:13:39Z"} gateway-1 | {"time_local":"21/May/2024:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /auth/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.022","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"ecec8a99433aa5b76da0d84727f4bb62"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 14ms","method":"HEAD","requestID":"ecec8a99433aa5b76da0d84727f4bb62","responseTime":14,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"21/May/2024:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /device/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.018","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"ce1a7938b45985faa587c677bc191ee6"} device-1 | {"level":"info","message":"HEAD /device/status 200 11ms","method":"HEAD","requestID":"19dfa710-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"21/May/2024:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /authorization/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.015","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"c1473ea08d3f1f7c0405b1b1bf287119"} 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":"c1473ea08d3f1f7c0405b1b1bf287119"},"httpVersion":"1.0","method":"HEAD","originalUrl":"/authorization/status","query":{},"url":"/authorization/status"},"res":{"statusCode":200},"responseTime":6}} gateway-1 | {"time_local":"21/May/2024:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /federation/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.016","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"c787e05294b79bedfbae33ea0fe09034"} federation-1 | {"level":"info","message":"HEAD /federation/status 200 11ms","method":"HEAD","requestID":"19e65dd0-178d-11ef-8473-8b3d5639e93b","responseTime":11,"status":200,"url":"/federation/status"} gateway-1 | {"time_local":"21/May/2024:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /experiment/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.015","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"951e13a6e68513b5f2a5ad1503813003"} experiment-1 | {"level":"info","message":"HEAD /experiment/status 200 10ms","method":"HEAD","requestID":"19e9e040-178d-11ef-9bcf-79f8880f4d16","responseTime":10,"status":200,"url":"/experiment/status"} gateway-1 | {"time_local":"21/May/2024:16:13:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.158","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"faebe34799dd5618274cd1ac443e2297"} authentication-1 | {"level":"info","message":"POST /login 201 138ms","method":"POST","requestID":"faebe34799dd5618274cd1ac443e2297","responseTime":138,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAyOX0.IJTxTGN5jD6wN1oCbyYhuIckEZ-dTMmrOILLGQGMp0s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 22ms","method":"GET","requestID":"a567644c0ec19bb1e03b7913e8d68151","responseTime":22,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:49Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.235238,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308029,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAyOX0.IJTxTGN5jD6wN1oCbyYhuIckEZ-dTMmrOILLGQGMp0s"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a567644c0ec19bb1e03b7913e8d68151"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":29}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"89cd8c74-d5e3-44e7-a138-09b85f2abe8c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.770434} 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":"a567644c0ec19bb1e03b7913e8d68151"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0af2ed62-7c0f-403e-8da4-4cd733556473","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.7864604} 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":"a567644c0ec19bb1e03b7913e8d68151"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"018e0408-7fe0-4999-a35a-f6ddc528f45f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.8031871} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7b623878-dcb2-48d7-8cf2-bc19ed9e7ce0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.80379} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a567644c0ec19bb1e03b7913e8d68151"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.803157537Z"}]},"request_id":"a1bf2e2f-9b86-45fa-9f90-acd67357e92b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.8110695} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a567644c0ec19bb1e03b7913e8d68151"},"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":"21/May/2024:16:13:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.282","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a567644c0ec19bb1e03b7913e8d68151"} device-1 | {"level":"info","message":"POST /devices? 201 241ms","method":"POST","requestID":"a567644c0ec19bb1e03b7913e8d68151","responseTime":241,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAyOX0.IJTxTGN5jD6wN1oCbyYhuIckEZ-dTMmrOILLGQGMp0s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b83fc64ee52fba7e592bde7bfce23dfc","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:49Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.09357,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308029,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAyOX0.IJTxTGN5jD6wN1oCbyYhuIckEZ-dTMmrOILLGQGMp0s"} 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":"b83fc64ee52fba7e592bde7bfce23dfc"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"72f3cc76-3e6b-4082-8960-e936399d5b10","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.8921719} 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":"b83fc64ee52fba7e592bde7bfce23dfc"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b5fcd1b7-fb07-41c8-89c8-0e94deafbfea","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.9076247} 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":"b83fc64ee52fba7e592bde7bfce23dfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"7d6ff8f1-b892-45fe-accc-10d52c301d85","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.928369} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e655b25-d0b7-4df6-862a-887560708103","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.9286659} 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":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b83fc64ee52fba7e592bde7bfce23dfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":26}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.928348483Z"}]},"request_id":"ca2a46ac-36cb-4949-99e3-a9f64b435564","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308029.9427366} 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":"b83fc64ee52fba7e592bde7bfce23dfc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"21/May/2024:16:13:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.115","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b83fc64ee52fba7e592bde7bfce23dfc"} device-1 | {"level":"info","message":"POST /devices? 201 107ms","method":"POST","requestID":"b83fc64ee52fba7e592bde7bfce23dfc","responseTime":107,"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 3ms","method":"GET","requestID":"e8a6064e9276962d1facd6862e7149b7","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ad4bd695dd32213cc2d30cdcba3f2741","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.009","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e8a6064e9276962d1facd6862e7149b7"} device-1 | {"level":"info","message":"OPTIONS /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/websocket 200 3ms","method":"OPTIONS","requestID":"e8a6064e9276962d1facd6862e7149b7","responseTime":3,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/websocket"} gateway-1 | {"time_local":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.013","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ad4bd695dd32213cc2d30cdcba3f2741"} device-1 | {"level":"info","message":"OPTIONS /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/websocket 200 2ms","method":"OPTIONS","requestID":"ad4bd695dd32213cc2d30cdcba3f2741","responseTime":2,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 11ms","method":"GET","requestID":"e5b0552aa282ac7f04d1c8dbc53a44f8","responseTime":11,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 10ms","method":"GET","requestID":"f39f0ae0bbb333b40924bdba3802b409","responseTime":10,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.381862,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"e5b0552aa282ac7f04d1c8dbc53a44f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.18554,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"f39f0ae0bbb333b40924bdba3802b409"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.081","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f39f0ae0bbb333b40924bdba3802b409"} device-1 | {"level":"info","message":"POST /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/websocket 200 63ms","method":"POST","requestID":"f39f0ae0bbb333b40924bdba3802b409","responseTime":63,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.087","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e5b0552aa282ac7f04d1c8dbc53a44f8"} device-1 | {"level":"info","message":"POST /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/websocket 200 73ms","method":"POST","requestID":"e5b0552aa282ac7f04d1c8dbc53a44f8","responseTime":73,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"89d2371b5dc03f7a5185feeba887a081","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.612445,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"89d2371b5dc03f7a5185feeba887a081"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.803157537Z"}]},"request_id":"013a81c5-3459-4d8c-b119-1e466cabb9e8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.347932} 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":"89d2371b5dc03f7a5185feeba887a081"},"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":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"89d2371b5dc03f7a5185feeba887a081"} device-1 | {"level":"info","message":"GET /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8? 200 39ms","method":"GET","requestID":"89d2371b5dc03f7a5185feeba887a081","responseTime":39,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 12ms","method":"GET","requestID":"6375dc77dbb7df011f46855b74076441","responseTime":12,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723779,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6375dc77dbb7df011f46855b74076441"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.928348483Z"}]},"request_id":"bf2e298d-6b74-416a-813f-01df83205ffd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.4290721} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6375dc77dbb7df011f46855b74076441"},"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":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.067","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6375dc77dbb7df011f46855b74076441"} device-1 | {"level":"info","message":"GET /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f? 200 21ms","method":"GET","requestID":"6375dc77dbb7df011f46855b74076441","responseTime":21,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c38f5964a95c8b29fb56d1c0c0bb3505","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:47510","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.696087,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"c38f5964a95c8b29fb56d1c0c0bb3505"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"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:47510","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650752,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"1d98b770-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.613067,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"1d992ca0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.803157537Z"}]},"request_id":"85ad4ec1-ea27-497b-b81e-c8227f43746f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.6309295} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d98b770-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.928348483Z"}]},"request_id":"05941d1c-bae0-48b0-b5e9-83112a2288b3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.6357245} device-1 | {"level":"info","message":"GET /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8? 200 22ms","method":"GET","requestID":"1d98b770-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d992ca0-178d-11ef-9e06-b78ba83e54a6"},"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/72d4abff-6fa0-4b13-b078-6c8a57dfc51f? 200 24ms","method":"GET","requestID":"1d992ca0-178d-11ef-9e06-b78ba83e54a6","responseTime":24,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"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:47510","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.881358,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"1da9a760-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.992754,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"1daa1c90-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ecd51b53-584b-4460-aaa0-b38447afeffd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.7497928} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.353753,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.928348483Z"}]},"request_id":"79ab51f5-3d97-4d30-8434-68e426e3f199","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.7511694} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","rebac_allow":false,"scope_allow":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":"1daab8d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"level":"info","message":"POST /relations/query 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1daa1c90-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.803157537Z"}]},"request_id":"3317de1c-d34f-44a5-8215-cbca5dca3b9b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.7557402} authorization-1 | {"level":"info","message":"POST /relations/query 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1da9a760-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F217e495b-20fb-4eaa-a14a-2158e26401ad#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F217e495b-20fb-4eaa-a14a-2158e26401ad","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"647ce860-1683-4864-adff-908e98ce2342","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.7647} device-1 | {"level":"info","message":"POST /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling 200 34ms","method":"POST","requestID":"1daab8d0-178d-11ef-9e06-b78ba83e54a6","responseTime":34,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f? 200 40ms","method":"GET","requestID":"1daa1c90-178d-11ef-9e06-b78ba83e54a6","responseTime":40,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4b0735d-eed7-4d16-9300-7ab770504850","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.7716022} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c38f5964a95c8b29fb56d1c0c0bb3505"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":34}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8? 200 50ms","method":"GET","requestID":"1da9a760-178d-11ef-9e06-b78ba83e54a6","responseTime":50,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1f1cd45e-5a67-44c0-afe9-731d405416e3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.7791069} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.851664,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","rebac_allow":false,"scope_allow":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":"1db0d350-178d-11ef-9e06-b78ba83e54a6"},"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/217e495b-20fb-4eaa-a14a-2158e26401ad","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling 200 15ms","method":"POST","requestID":"1db0d350-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"32133b60-804d-4c13-8224-b9fcbdd9058f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.7896457} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.354312,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} gateway-1 | {"time_local":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.348","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c38f5964a95c8b29fb56d1c0c0bb3505"} experiment-1 | {"level":"info","message":"POST /experiments? 201 330ms","method":"POST","requestID":"c38f5964a95c8b29fb56d1c0c0bb3505","responseTime":330,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","rebac_allow":false,"scope_allow":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":"1db232e0-178d-11ef-9e06-b78ba83e54a6"},"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/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling 200 16ms","method":"POST","requestID":"1db232e0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f443cf728f64097e95d98175c53b63be","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d0d41c40-490f-4283-86b4-79bc59db853f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.8072145} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.817985,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f443cf728f64097e95d98175c53b63be"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.184085,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","rebac_allow":false,"scope_allow":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":"1db51910-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.803157537Z"}]},"request_id":"ecc86efb-e905-4a0c-9b7f-57acf79b6745","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.813987} device-1 | {"level":"info","message":"POST /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling 200 12ms","method":"POST","requestID":"1db51910-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/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":"f443cf728f64097e95d98175c53b63be"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"85025905-a7c4-4431-b01d-5fe12e7626f3"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"05cdf305-85e5-4b17-b98e-21271bed7b45"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"013d6c9d-85d9-4f02-bdb2-c7fac68b6ff8"}]},"level":"info","message":"Built pairwise service configurations"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8? 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":"f443cf728f64097e95d98175c53b63be"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"GET /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8? 200 15ms","method":"GET","requestID":"f443cf728f64097e95d98175c53b63be","responseTime":15,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bbc36a290ae55200b8910636d49f98f6","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:47510","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.797673,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} 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":"1db89b80-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.826179,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308032,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzMn0.QzD0BSD8rg8KPhAS1Uujo4ARlsN8iXGj5J-0P44_hbc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bbc36a290ae55200b8910636d49f98f6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:49.928348483Z"}]},"request_id":"6480771a-65ee-43f1-a8dd-7a67a4a6d008","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.8371549} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bbc36a290ae55200b8910636d49f98f6"},"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":"21/May/2024:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f? 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":"bbc36a290ae55200b8910636d49f98f6"} device-1 | {"level":"info","message":"GET /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f? 200 14ms","method":"GET","requestID":"bbc36a290ae55200b8910636d49f98f6","responseTime":14,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"ce34ec3c-ba1d-47ba-a28e-047a6d538327","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.8588042} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f5b287a-b6c0-4987-b4a0-e03452bd6195","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.8590071} 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":"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":"1db89b80-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} 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/bb2b4931-637f-4e27-85c9-6b07637d4436'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 54ms","method":"POST","requestID":"1db89b80-178d-11ef-9e06-b78ba83e54a6","responseTime":54,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b2179f70-01d0-413a-a7b9-f4dbe3cced6e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.918791} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.483295,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","rebac_allow":false,"scope_allow":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":"1dc63010-178d-11ef-9e06-b78ba83e54a6"},"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/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling 200 11ms","method":"POST","requestID":"1dc63010-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"72b7114b-61bb-44cf-afab-77a0c9b8d62a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308032.9324687} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.466594,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","rebac_allow":false,"scope_allow":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":"1dc852f0-178d-11ef-9e06-b78ba83e54a6"},"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/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling 200 11ms","method":"POST","requestID":"1dc852f0-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bb2b4931-637f-4e27-85c9-6b07637d4436","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3fca48b470c5ba40c223628aa87edfbc","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"bb2b4931-637f-4e27-85c9-6b07637d4436","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 15ms","method":"POST","requestID":"3fca48b470c5ba40c223628aa87edfbc","responseTime":15,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:13: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.021","http_referrer":"","http_user_agent":"node-fetch","requestID":"3fca48b470c5ba40c223628aa87edfbc"} device-1 | {"data":{"peerconnection":"bb2b4931-637f-4e27-85c9-6b07637d4436","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/bb2b4931-637f-4e27-85c9-6b07637d4436' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bb2b4931-637f-4e27-85c9-6b07637d4436","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":"92209ae3c901f4bb189520f458252c0c","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/72d4abff-6fa0-4b13-b078-6c8a57dfc51f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbb2b4931-637f-4e27-85c9-6b07637d4436","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"63c1e052-c4e5-4ec2-ae73-e18470fcf347","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.1569874} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.343839,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436","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":"1dea59e0-178d-11ef-9e06-b78ba83e54a6"},"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/bb2b4931-637f-4e27-85c9-6b07637d4436 200 13ms","method":"GET","requestID":"1dea59e0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 39ms","method":"POST","requestID":"92209ae3c901f4bb189520f458252c0c","responseTime":39,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch","requestID":"92209ae3c901f4bb189520f458252c0c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"b381ec3edcb7822d08d84d5f1f39c4f8","responseTime":7,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6f323143-eba2-493b-8aac-100e837733e4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.1893601} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.837501,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","rebac_allow":false,"scope_allow":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":"1def8a00-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling 200 10ms","method":"POST","requestID":"1def8a00-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.817273,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308033,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w"} 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":"b381ec3edcb7822d08d84d5f1f39c4f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"726784a1-131c-4e94-9b15-1b59108b2598","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.2023067} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.490173,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","rebac_allow":false,"scope_allow":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":"1df185d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"21/May/2024:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/217e495b-20fb-4eaa-a14a-2158e26401ad HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b381ec3edcb7822d08d84d5f1f39c4f8"} experiment-1 | {"level":"info","message":"GET /experiments/217e495b-20fb-4eaa-a14a-2158e26401ad 200 18ms","method":"GET","requestID":"b381ec3edcb7822d08d84d5f1f39c4f8","responseTime":18,"status":200,"url":"/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"} device-1 | {"level":"info","message":"POST /devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling 200 9ms","method":"POST","requestID":"1df185d0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"584b9823ec23779e43406e47682012d2","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.704502,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308033,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w"} 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":"584b9823ec23779e43406e47682012d2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.703951,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308033,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1df640c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bb2b4931-637f-4e27-85c9-6b07637d4436","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":"2240201b0dffc14656e4dbcf0f7dabe4","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/72d4abff-6fa0-4b13-b078-6c8a57dfc51f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436"}}},"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":"117f16287c06d1ad5bc9668eddbdc6c7","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbb2b4931-637f-4e27-85c9-6b07637d4436': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbb2b4931-637f-4e27-85c9-6b07637d4436","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"d6affdf0-727b-401d-9930-9564a7c79bdd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.2563386} 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/72d4abff-6fa0-4b13-b078-6c8a57dfc51f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436"}}},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fbdfb542-02b0-4ed2-936c-7eb7908f875b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.2564998} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1df640c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"data":{"peerconnection":"bb2b4931-637f-4e27-85c9-6b07637d4436","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/bb2b4931-637f-4e27-85c9-6b07637d4436 204 47ms","method":"DELETE","requestID":"1df640c0-178d-11ef-9e06-b78ba83e54a6","responseTime":47,"status":204,"url":"/peerconnections/bb2b4931-637f-4e27-85c9-6b07637d4436"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72d4abff-6fa0-4b13-b078-6c8a57dfc51f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"31798a67-df02-4400-a511-0453b7015601","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.3081746} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.542649,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f","object_type":"device","rebac_allow":false,"scope_allow":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":"1e00c810-178d-11ef-9e06-b78ba83e54a6"},"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/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling 200 16ms","method":"POST","requestID":"1e00c810-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F217e495b-20fb-4eaa-a14a-2158e26401ad': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F217e495b-20fb-4eaa-a14a-2158e26401ad","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"f7d7b4e5-f36f-4348-b406-c85dbf8b4e57","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.3170633} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ff6b256f-26de-400c-9a38-753a15aad481","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.317294} 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":"584b9823ec23779e43406e47682012d2"},"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:47510","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"da00a208-6a8d-4282-a393-369eb27dabc1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.3240783} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.015007,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8","object_type":"device","rebac_allow":false,"scope_allow":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":"1e03ae40-178d-11ef-9e06-b78ba83e54a6"},"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/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling 200 14ms","method":"POST","requestID":"1e03ae40-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"} gateway-1 | {"time_local":"21/May/2024:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/217e495b-20fb-4eaa-a14a-2158e26401ad HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"584b9823ec23779e43406e47682012d2"} experiment-1 | {"level":"info","message":"DELETE /experiments/217e495b-20fb-4eaa-a14a-2158e26401ad 204 177ms","method":"DELETE","requestID":"584b9823ec23779e43406e47682012d2","responseTime":177,"status":204,"url":"/experiments/217e495b-20fb-4eaa-a14a-2158e26401ad"} gateway-1 | {"time_local":"21/May/2024:16:13: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.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"2240201b0dffc14656e4dbcf0f7dabe4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"2240201b0dffc14656e4dbcf0f7dabe4","responseTime":144,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"117f16287c06d1ad5bc9668eddbdc6c7","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:13: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.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"117f16287c06d1ad5bc9668eddbdc6c7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a0e4a6ded819ee7f9c07b3bfbaeb58f1","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.870197,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} gateway-1 | {"time_local":"21/May/2024:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2645","request_time":"1.134","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"64b5142684c5898ae67ee0a4abf15c46"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308033,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w"} gateway-1 | {"time_local":"21/May/2024:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2989","request_time":"1.133","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8fd0c169cae1ddff3d578164e8895840"} 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":"a0e4a6ded819ee7f9c07b3bfbaeb58f1"},"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/53a779bf-dfc1-4e04-b53c-eb2e431c6cb8' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/72d4abff-6fa0-4b13-b078-6c8a57dfc51f' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ea589ce4-0a3c-4227-b371-38a08680a196","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.4274225} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0e4a6ded819ee7f9c07b3bfbaeb58f1"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1d7d977a-1add-4f58-a6e9-37fefd07638c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.4323506} 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":"a0e4a6ded819ee7f9c07b3bfbaeb58f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"b539c8c3-635d-4c1a-a3d8-abe47de68122","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.4470286} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8a9ce008-7089-483d-a98c-8c6cddf15bb1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.4472418} 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":"a0e4a6ded819ee7f9c07b3bfbaeb58f1"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.447018722Z"}]},"request_id":"8b989bc5-41b1-482b-af4a-344005d87665","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.45268} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0e4a6ded819ee7f9c07b3bfbaeb58f1"},"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":"21/May/2024:16:13: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.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a0e4a6ded819ee7f9c07b3bfbaeb58f1"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"a0e4a6ded819ee7f9c07b3bfbaeb58f1","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"35b88ddeb4d6e49dfb45e559ce075a96","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.69255,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308033,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzM30.9Lxp1rqYZdTPDLSvd2lEMiqTGWsWOR7bhi_sjuioW0w"} 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":"35b88ddeb4d6e49dfb45e559ce075a96"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bd1fbe18-3f96-4c2a-8171-34f698a8ba30","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.4820478} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35b88ddeb4d6e49dfb45e559ce075a96"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6e513e77-9146-48cc-963d-fdc7d427996b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.4886017} 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":"35b88ddeb4d6e49dfb45e559ce075a96"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"9daa144f-19f8-4b60-ba31-0db21f8431f7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.4986222} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4e58abe7-9138-4c47-8915-efc18a0508f7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.4990199} 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":"35b88ddeb4d6e49dfb45e559ce075a96"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.498606295Z"}]},"request_id":"8944f26f-b540-4f11-b359-521b13a96e2c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308033.503756} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35b88ddeb4d6e49dfb45e559ce075a96"},"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":"21/May/2024:16:13: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.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"35b88ddeb4d6e49dfb45e559ce075a96"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"35b88ddeb4d6e49dfb45e559ce075a96","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNH0.XVGcIeGSoM4ssSrwiYXA0h3KSZ1kfVa_DfVwb4iDx1g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"84d06d736f6cbcfc6a3d947eecd7cb5b","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:54Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.30179,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308034,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNH0.XVGcIeGSoM4ssSrwiYXA0h3KSZ1kfVa_DfVwb4iDx1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84d06d736f6cbcfc6a3d947eecd7cb5b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.498606295Z"}]},"request_id":"33a2ccd1-c649-45e1-affc-37ba23a11359","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308034.1157436} 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":"84d06d736f6cbcfc6a3d947eecd7cb5b"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ac84c67-4b8a-4821-b683-746c00c2ef31","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308034.1249232} 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":"84d06d736f6cbcfc6a3d947eecd7cb5b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.498606295Z"}]},"request_id":"39066533-1e0b-430d-a486-048b64176732","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308034.1415532} 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":"84d06d736f6cbcfc6a3d947eecd7cb5b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:13:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.075","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"84d06d736f6cbcfc6a3d947eecd7cb5b"} device-1 | {"level":"info","message":"PATCH /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90 200 67ms","method":"PATCH","requestID":"84d06d736f6cbcfc6a3d947eecd7cb5b","responseTime":67,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNH0.XVGcIeGSoM4ssSrwiYXA0h3KSZ1kfVa_DfVwb4iDx1g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"95dd0c9691545a265182474f0cfe824f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:54Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.152665,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308034,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNH0.XVGcIeGSoM4ssSrwiYXA0h3KSZ1kfVa_DfVwb4iDx1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"95dd0c9691545a265182474f0cfe824f"},"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":"21/May/2024:16:13:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.031","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"95dd0c9691545a265182474f0cfe824f"} device-1 | {"level":"info","message":"POST /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/websocket 200 25ms","method":"POST","requestID":"95dd0c9691545a265182474f0cfe824f","responseTime":25,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90' 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":"c8d91ace123ef02515749c999ed5d88c","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/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":"c8d91ace123ef02515749c999ed5d88c"} device-1 | {"level":"info","message":"OPTIONS /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/websocket 200 2ms","method":"OPTIONS","requestID":"c8d91ace123ef02515749c999ed5d88c","responseTime":2,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"6961174326c0aaffbfc38389eccca9b1","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.621499,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} 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":"6961174326c0aaffbfc38389eccca9b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/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":"6961174326c0aaffbfc38389eccca9b1"} device-1 | {"level":"info","message":"POST /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/websocket 200 30ms","method":"POST","requestID":"6961174326c0aaffbfc38389eccca9b1","responseTime":30,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cd0db341dbc3648ab96e8d22f0326ffd","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.31865,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd0db341dbc3648ab96e8d22f0326ffd"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.447018722Z"}]},"request_id":"5f0196ec-dea6-4516-874f-52ade5aa443d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.5377336} 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":"cd0db341dbc3648ab96e8d22f0326ffd"},"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":"21/May/2024:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8? 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":"cd0db341dbc3648ab96e8d22f0326ffd"} device-1 | {"level":"info","message":"GET /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8? 200 21ms","method":"GET","requestID":"cd0db341dbc3648ab96e8d22f0326ffd","responseTime":21,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"46b0b8c05830966b9be6cf1783c93961","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.247641,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"46b0b8c05830966b9be6cf1783c93961"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.498606295Z"}]},"request_id":"bc429f9d-0884-4bcf-add1-1032bf3902ee","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.5686293} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"46b0b8c05830966b9be6cf1783c93961"},"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":"21/May/2024:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90? 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":"46b0b8c05830966b9be6cf1783c93961"} device-1 | {"level":"info","message":"GET /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90? 200 19ms","method":"GET","requestID":"46b0b8c05830966b9be6cf1783c93961","responseTime":19,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"40bec7a32c46ee2b1f2a9c3300effd1f","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:47510","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.017534,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} 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":"40bec7a32c46ee2b1f2a9c3300effd1f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"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:47510","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.114188,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} 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":"1f686e60-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.243854,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} 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":"1f68bc80-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.447018722Z"}]},"request_id":"96d20a4f-2071-421e-aefa-e15a23bd7cbf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.6699953} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.498606295Z"}]},"request_id":"a31872c3-785e-4b80-a655-6217ad36f2d0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.6724348} 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":"1f686e60-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f68bc80-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8? 200 29ms","method":"GET","requestID":"1f686e60-178d-11ef-9e06-b78ba83e54a6","responseTime":29,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90? 200 28ms","method":"GET","requestID":"1f68bc80-178d-11ef-9e06-b78ba83e54a6","responseTime":28,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"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/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.772923,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} 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":"1f76ed50-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.780873,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} 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":"1f773b70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.384503,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"07dca352-9aa6-4431-a9a8-24f5574a0e6d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.7666662} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","rebac_allow":false,"scope_allow":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":"1f77b0a0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.447018722Z"}]},"request_id":"aec4db85-2729-4cda-8f90-79f7c529c889","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.771226} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f76ed50-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"POST /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling 200 24ms","method":"POST","requestID":"1f77b0a0-178d-11ef-9e06-b78ba83e54a6","responseTime":24,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.498606295Z"}]},"request_id":"d4d98a8e-4b37-48fa-b228-3b32c9022e48","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.7768013} 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":"1f773b70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8? 200 42ms","method":"GET","requestID":"1f76ed50-178d-11ef-9e06-b78ba83e54a6","responseTime":42,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbfc10840-6655-456d-b159-d1af8a510c72#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbfc10840-6655-456d-b159-d1af8a510c72","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"cbd3d4a8-98b2-40be-b6fe-317ab1f81302","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.7903996} device-1 | {"level":"info","message":"GET /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90? 200 42ms","method":"GET","requestID":"1f773b70-178d-11ef-9e06-b78ba83e54a6","responseTime":42,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0fe3039c-bfd6-4a24-88d8-0f1425e094bf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.7908964} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40bec7a32c46ee2b1f2a9c3300effd1f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":30}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.577028,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ed378b69-a54c-4bd8-be51-a96bf80d6daa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.7970672} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","rebac_allow":false,"scope_allow":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":"1f7c4480-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling 200 24ms","method":"POST","requestID":"1f7c4480-178d-11ef-9e06-b78ba83e54a6","responseTime":24,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e4ededdc-8415-401d-9aef-4d59dcd9a01b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.8086681} gateway-1 | {"time_local":"21/May/2024:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.229","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"40bec7a32c46ee2b1f2a9c3300effd1f"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.226066,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} experiment-1 | {"level":"info","message":"POST /experiments? 201 222ms","method":"POST","requestID":"40bec7a32c46ee2b1f2a9c3300effd1f","responseTime":222,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","rebac_allow":false,"scope_allow":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":"1f7e6760-178d-11ef-9e06-b78ba83e54a6"},"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/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling 200 16ms","method":"POST","requestID":"1f7e6760-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f38e6630f5191f46008bb45cdcb8f81e","responseTime":4,"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:47510","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.799105,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f38e6630f5191f46008bb45cdcb8f81e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9f2d3cb-8241-432d-ace4-5be644142ecb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.8243513} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.544582,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","rebac_allow":false,"scope_allow":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":"1f819bb0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.447018722Z"}]},"request_id":"4cf12a61-575d-45dd-ba52-7879ed3a8941","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.8292224} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f38e6630f5191f46008bb45cdcb8f81e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"POST /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling 200 12ms","method":"POST","requestID":"1f819bb0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"ae7d2678-f8bf-40ef-a381-59f5bbef2a3f"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"bedd125a-3d08-49ab-8e10-462824b94a80"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"c7803f7e-1f35-4937-870c-3cc2cac2fff9"}]},"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/10df42a0-5c32-4733-b6e7-b0181a9fdba8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90"}],"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":"21/May/2024:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8? 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":"f38e6630f5191f46008bb45cdcb8f81e"} device-1 | {"level":"info","message":"GET /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8? 200 23ms","method":"GET","requestID":"f38e6630f5191f46008bb45cdcb8f81e","responseTime":23,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.341691,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} 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":"1f845ad0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0771e11ba6baada8bba7982536f7139d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687151,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308035,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzNX0.h299NGMizLAI8pDXmjb_KJCOKavW5X7mrGDXTrO3vEU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0771e11ba6baada8bba7982536f7139d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"f8e71321-f6b2-4657-918c-db67cc89b246","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.8559685} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d568355e-169d-462e-9c41-8d58048eccdf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.856195} 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":"1f845ad0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:53.498606295Z"}]},"request_id":"e7c9d42d-73de-4763-a8cd-4268971e8809","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.8616412} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0771e11ba6baada8bba7982536f7139d"},"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/480c96e5-ccf1-4db9-a1b0-3754a5e57728'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728'"} 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":"1f845ad0-178d-11ef-9e06-b78ba83e54a6","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":"21/May/2024:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0771e11ba6baada8bba7982536f7139d"} device-1 | {"level":"info","message":"GET /devices/337fb62a-92cc-4827-91a7-2c10a56c5b90? 200 30ms","method":"GET","requestID":"0771e11ba6baada8bba7982536f7139d","responseTime":30,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0e4d962b-49b2-4182-bd49-d67fd04e7c28","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.912457} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.815535,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","rebac_allow":false,"scope_allow":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":"1f8f0930-178d-11ef-9e06-b78ba83e54a6"},"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/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling 200 11ms","method":"POST","requestID":"1f8f0930-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6b421e36-7e5c-4eaa-a536-e66a5d6496d1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308035.9246612} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.122908,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","rebac_allow":false,"scope_allow":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":"1f910500-178d-11ef-9e06-b78ba83e54a6"},"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/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling 200 10ms","method":"POST","requestID":"1f910500-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling"} device-1 | {"data":{"peerconnection":"480c96e5-ccf1-4db9-a1b0-3754a5e57728","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/480c96e5-ccf1-4db9-a1b0-3754a5e57728' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"480c96e5-ccf1-4db9-a1b0-3754a5e57728","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8'"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"42ad5b8fc0166f3735ab968bd130adc2","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/10df42a0-5c32-4733-b6e7-b0181a9fdba8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"42ad5b8fc0166f3735ab968bd130adc2","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:13: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.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"42ad5b8fc0166f3735ab968bd130adc2"} device-1 | {"data":{"peerconnection":"480c96e5-ccf1-4db9-a1b0-3754a5e57728","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"480c96e5-ccf1-4db9-a1b0-3754a5e57728","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/480c96e5-ccf1-4db9-a1b0-3754a5e57728' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"480c96e5-ccf1-4db9-a1b0-3754a5e57728","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":"8d535f9be2d4f332cfa954fe916675bb","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/10df42a0-5c32-4733-b6e7-b0181a9fdba8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F480c96e5-ccf1-4db9-a1b0-3754a5e57728","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0aaaabf1-b7fe-48b7-8b57-169cadfffcba","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.101661} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.682978,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728","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":"20dc97d0-178d-11ef-9e06-b78ba83e54a6"},"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/480c96e5-ccf1-4db9-a1b0-3754a5e57728 200 17ms","method":"GET","requestID":"20dc97d0-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 52ms","method":"POST","requestID":"8d535f9be2d4f332cfa954fe916675bb","responseTime":52,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch","requestID":"8d535f9be2d4f332cfa954fe916675bb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f4f4721c-365b-441a-9c65-7c4bb1a22cd0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.1450748} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.142489,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","rebac_allow":false,"scope_allow":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":"20e34e90-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling 200 16ms","method":"POST","requestID":"20e34e90-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a0d3169062896ef403fc77f8193ab1e1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/bfc10840-6655-456d-b159-d1af8a510c72"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8aaa8dde-e73b-4a2b-a594-2b7d03b63216","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.1641164} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.180796,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308038,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4"} 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":"a0d3169062896ef403fc77f8193ab1e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.626036,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","rebac_allow":false,"scope_allow":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":"20e65bd0-178d-11ef-9e06-b78ba83e54a6"},"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/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling 200 17ms","method":"POST","requestID":"20e65bd0-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/bfc10840-6655-456d-b159-d1af8a510c72"} gateway-1 | {"time_local":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/bfc10840-6655-456d-b159-d1af8a510c72 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a0d3169062896ef403fc77f8193ab1e1"} experiment-1 | {"level":"info","message":"GET /experiments/bfc10840-6655-456d-b159-d1af8a510c72 200 20ms","method":"GET","requestID":"a0d3169062896ef403fc77f8193ab1e1","responseTime":20,"status":200,"url":"/experiments/bfc10840-6655-456d-b159-d1af8a510c72"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"9985a2f9405c14c2960072315c2f960c","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/bfc10840-6655-456d-b159-d1af8a510c72"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.232759,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308038,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4"} 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":"9985a2f9405c14c2960072315c2f960c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.301443,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308038,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4"} 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":"20ee2400-178d-11ef-9e06-b78ba83e54a6"},"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/480c96e5-ccf1-4db9-a1b0-3754a5e57728' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"480c96e5-ccf1-4db9-a1b0-3754a5e57728","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":"09ca435c1140249c23ed3569136a12a7","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":"813692415b12a5c93be5aee80cd010d5","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/10df42a0-5c32-4733-b6e7-b0181a9fdba8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F480c96e5-ccf1-4db9-a1b0-3754a5e57728': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F480c96e5-ccf1-4db9-a1b0-3754a5e57728","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"07f3a77e-a119-4af8-aa0f-95a65a12516f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.2431731} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dca37421-28fa-478e-a29b-448610366dd8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.2435095} 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/10df42a0-5c32-4733-b6e7-b0181a9fdba8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728"}}},"level":"info","message":"received a callback"} 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":"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":"20ee2400-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"data":{"peerconnection":"480c96e5-ccf1-4db9-a1b0-3754a5e57728","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/480c96e5-ccf1-4db9-a1b0-3754a5e57728 204 63ms","method":"DELETE","requestID":"20ee2400-178d-11ef-9e06-b78ba83e54a6","responseTime":63,"status":204,"url":"/peerconnections/480c96e5-ccf1-4db9-a1b0-3754a5e57728"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bfc10840-6655-456d-b159-d1af8a510c72"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F10df42a0-5c32-4733-b6e7-b0181a9fdba8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9c0a8a11-8222-4452-b2db-70b1fffc3a66","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.307034} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.126563,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8","object_type":"device","rebac_allow":false,"scope_allow":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":"20fc06b0-178d-11ef-9e06-b78ba83e54a6"},"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/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling 200 16ms","method":"POST","requestID":"20fc06b0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/10df42a0-5c32-4733-b6e7-b0181a9fdba8/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbfc10840-6655-456d-b159-d1af8a510c72': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbfc10840-6655-456d-b159-d1af8a510c72","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"265a2279-834c-47ea-a13e-d28f08feaab2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.3149052} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7b0cba9b-c00b-4904-82bd-801420f0a515","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.3156714} 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":"9985a2f9405c14c2960072315c2f960c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337fb62a-92cc-4827-91a7-2c10a56c5b90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0afff391-c861-4409-ae0f-1a3528d844ac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.3275986} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.002147,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90","object_type":"device","rebac_allow":false,"scope_allow":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":"20ff3b00-178d-11ef-9e06-b78ba83e54a6"},"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/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling 200 16ms","method":"POST","requestID":"20ff3b00-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/bfc10840-6655-456d-b159-d1af8a510c72"} gateway-1 | {"time_local":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/bfc10840-6655-456d-b159-d1af8a510c72 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.211","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9985a2f9405c14c2960072315c2f960c"} gateway-1 | {"time_local":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2598","request_time":"4.202","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"9a021350b060f57cf9e0d068af5f27f6"} experiment-1 | {"level":"info","message":"DELETE /experiments/bfc10840-6655-456d-b159-d1af8a510c72 204 207ms","method":"DELETE","requestID":"9985a2f9405c14c2960072315c2f960c","responseTime":207,"status":204,"url":"/experiments/bfc10840-6655-456d-b159-d1af8a510c72"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 158ms","method":"POST","requestID":"09ca435c1140249c23ed3569136a12a7","responseTime":158,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3064324d7b6d6755a03dc80e9366e061","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"813692415b12a5c93be5aee80cd010d5","responseTime":156,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch","requestID":"09ca435c1140249c23ed3569136a12a7"} gateway-1 | {"time_local":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch","requestID":"813692415b12a5c93be5aee80cd010d5"} gateway-1 | {"time_local":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2506","request_time":"2.907","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"14b8e4fb068e0ff6b70b4ceb8b3b5bfc"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.958992,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/337fb62a-92cc-4827-91a7-2c10a56c5b90' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308038,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4"} 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":"3064324d7b6d6755a03dc80e9366e061"},"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/10df42a0-5c32-4733-b6e7-b0181a9fdba8' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3ab86885-30ef-4d6c-8162-323a65a47df9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.4239304} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3064324d7b6d6755a03dc80e9366e061"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b6189f9-bcdf-4b16-b50a-01bfb57a54b1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.4304605} 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":"3064324d7b6d6755a03dc80e9366e061"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"a18a30d0-6c44-4bfa-9a33-986eff78ca13","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.441041} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dfea33bd-67fa-40e0-8bee-d84682ac6cb1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.4413245} 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":"3064324d7b6d6755a03dc80e9366e061"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.441027699Z"}]},"request_id":"72a9b254-3cab-46da-8ab2-ad3a84606759","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.4470181} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3064324d7b6d6755a03dc80e9366e061"},"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":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3064324d7b6d6755a03dc80e9366e061"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"3064324d7b6d6755a03dc80e9366e061","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7dfb425879e406fcd86eca1a48778752","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.833491,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308038,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4"} 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":"7dfb425879e406fcd86eca1a48778752"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6e004a34-ae7c-403e-b328-772ad3d418cd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.4755003} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7dfb425879e406fcd86eca1a48778752"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5d3d6303-3531-4087-86cb-052551223704","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.4805372} 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":"7dfb425879e406fcd86eca1a48778752"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"c255473a-5840-4e73-ad91-e9c1b110c995","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.491999} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9142a3fc-8882-4bbd-a470-cffbd9fbab00","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.4921181} 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":"7dfb425879e406fcd86eca1a48778752"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.491981874Z"}]},"request_id":"2dd1fcfb-d9a8-4539-95fc-28918ce6fa2c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.4977796} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7dfb425879e406fcd86eca1a48778752"},"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":"21/May/2024:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7dfb425879e406fcd86eca1a48778752"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"7dfb425879e406fcd86eca1a48778752","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"26e1a498ef33ab4e386e8b5cd74a4cd6","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.212846,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308038,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOH0.I8Ez_2YZP0dzaNAgYPo5yybOQuaqLfItxIZV525sBc4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"26e1a498ef33ab4e386e8b5cd74a4cd6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.441027699Z"}]},"request_id":"022815a5-a647-4307-8947-81b82c9920bb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308038.998215} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"26e1a498ef33ab4e386e8b5cd74a4cd6"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b811cfe-3ef2-43ac-989f-e0775c01ab63","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308039.007329} 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":"26e1a498ef33ab4e386e8b5cd74a4cd6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.441027699Z"}]},"request_id":"fcbabbf4-eb95-490b-ab54-b8d988d68241","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308039.035715} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"26e1a498ef33ab4e386e8b5cd74a4cd6"},"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":"21/May/2024:16:13:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.065","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"26e1a498ef33ab4e386e8b5cd74a4cd6"} device-1 | {"level":"info","message":"PATCH /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f 200 58ms","method":"PATCH","requestID":"26e1a498ef33ab4e386e8b5cd74a4cd6","responseTime":58,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOX0.nRBkP4GtH0xf5thkBjA6_lm2XQdqjfvIJJfAH2NwpRc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d3c70e3deaef96e9d6201dcd0a853359","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:13:59Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.345119,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:13:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308039,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODAzOX0.nRBkP4GtH0xf5thkBjA6_lm2XQdqjfvIJJfAH2NwpRc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3c70e3deaef96e9d6201dcd0a853359"},"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":"21/May/2024:16:13:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/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":"d3c70e3deaef96e9d6201dcd0a853359"} device-1 | {"level":"info","message":"POST /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/websocket 200 22ms","method":"POST","requestID":"d3c70e3deaef96e9d6201dcd0a853359","responseTime":22,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f' 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":"e16a7298e7b4b4bab55ee6975161c113","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f1895ad8-d808-4941-9a2e-bcd49be46892/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":"e16a7298e7b4b4bab55ee6975161c113"} device-1 | {"level":"info","message":"OPTIONS /devices/f1895ad8-d808-4941-9a2e-bcd49be46892/websocket 200 1ms","method":"OPTIONS","requestID":"e16a7298e7b4b4bab55ee6975161c113","responseTime":1,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"82221287de03831f959f21b53c66cb5b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.248333,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82221287de03831f959f21b53c66cb5b"},"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":"21/May/2024:16:14:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f1895ad8-d808-4941-9a2e-bcd49be46892/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":"82221287de03831f959f21b53c66cb5b"} device-1 | {"level":"info","message":"POST /devices/f1895ad8-d808-4941-9a2e-bcd49be46892/websocket 200 42ms","method":"POST","requestID":"82221287de03831f959f21b53c66cb5b","responseTime":42,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"310473c5786a62d56373295b328beef5","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.270638,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"310473c5786a62d56373295b328beef5"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.441027699Z"}]},"request_id":"3a054e89-3f0c-429a-a6b1-7418d0c32ab0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.5942025} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"310473c5786a62d56373295b328beef5"},"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":"21/May/2024:16:14:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f? 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":"310473c5786a62d56373295b328beef5"} device-1 | {"level":"info","message":"GET /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f? 200 19ms","method":"GET","requestID":"310473c5786a62d56373295b328beef5","responseTime":19,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"83867cc4a0ef5aaefa3c4c93066f78cf","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.24497,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"83867cc4a0ef5aaefa3c4c93066f78cf"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.491981874Z"}]},"request_id":"10522081-e9cb-47ef-a394-cff0412d212a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.625084} 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":"83867cc4a0ef5aaefa3c4c93066f78cf"},"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":"21/May/2024:16:14:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f1895ad8-d808-4941-9a2e-bcd49be46892? 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":"83867cc4a0ef5aaefa3c4c93066f78cf"} device-1 | {"level":"info","message":"GET /devices/f1895ad8-d808-4941-9a2e-bcd49be46892? 200 20ms","method":"GET","requestID":"83867cc4a0ef5aaefa3c4c93066f78cf","responseTime":20,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"99af6f63605d88f810482dc30bd0f03d","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:47510","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.091797,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} 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":"99af6f63605d88f810482dc30bd0f03d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"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:47510","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.426445,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} 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":"226b7530-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.228167,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} 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":"226bc350-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.441027699Z"}]},"request_id":"1d43c907-62f7-4c0f-be0d-9c8becb1656c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.724031} 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":"226b7530-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.491981874Z"}]},"request_id":"384d85f6-54fd-4544-a8fc-471673329764","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.7259722} 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":"226bc350-178d-11ef-9e06-b78ba83e54a6"},"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/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f? 200 27ms","method":"GET","requestID":"226b7530-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f1895ad8-d808-4941-9a2e-bcd49be46892? 200 27ms","method":"GET","requestID":"226bc350-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"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:47510","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.841095,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} 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":"227a1b30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.097999,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} 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":"227ab770-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e77439df-a027-462b-942c-a3a59f5551a8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.822349} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.491981874Z"}]},"request_id":"fa922d6f-ec3a-4d91-b947-8d54d5b81ee3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.8243303} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.441027699Z"}]},"request_id":"c0987f4e-53ae-4e07-9c53-fdedb7dda99e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.826486} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.012064,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","rebac_allow":false,"scope_allow":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":"227b53b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} 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":"227ab770-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"level":"info","message":"POST /relations/query 200 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":"227a1b30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb92fdfa1-da75-4ab4-8fbb-f917c0a28da7#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb92fdfa1-da75-4ab4-8fbb-f917c0a28da7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"4bae1d9c-5ee5-43bc-8ece-ad91b909bb44","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.8368306} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5a8095bb-796b-46c1-bf83-3ae37c770daf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.8374066} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling 200 29ms","method":"POST","requestID":"227b53b0-178d-11ef-9e06-b78ba83e54a6","responseTime":29,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f1895ad8-d808-4941-9a2e-bcd49be46892? 200 35ms","method":"GET","requestID":"227ab770-178d-11ef-9e06-b78ba83e54a6","responseTime":35,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892?"} 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":"99af6f63605d88f810482dc30bd0f03d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f? 200 41ms","method":"GET","requestID":"227a1b30-178d-11ef-9e06-b78ba83e54a6","responseTime":41,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8a657d84-c395-45bb-a79b-dda76ad02141","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.850815} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.176372,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"228083d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.223","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"99af6f63605d88f810482dc30bd0f03d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 216ms","method":"POST","requestID":"99af6f63605d88f810482dc30bd0f03d","responseTime":216,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling 200 13ms","method":"POST","requestID":"228083d0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"526dba5f-8ecc-4b5b-8cfb-f0deea1c5d09","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.8585474} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.894223,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","rebac_allow":false,"scope_allow":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":"2281bc50-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"04c7fc172af139b75ed4873f3217f0e4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling 200 12ms","method":"POST","requestID":"2281bc50-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.584591,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} 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":"04c7fc172af139b75ed4873f3217f0e4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0f2ae09a-88fa-4b54-a9cd-8bce61988204","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.876584} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.486698,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","rebac_allow":false,"scope_allow":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":"22842d50-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.441027699Z"}]},"request_id":"d6a2c170-3863-467f-b202-ae4aba6c95d1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.8851976} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"04c7fc172af139b75ed4873f3217f0e4"},"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/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling 200 21ms","method":"POST","requestID":"22842d50-178d-11ef-9e06-b78ba83e54a6","responseTime":21,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"45d9be92-ce47-443a-b95e-e040298de86e"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"cb645eae-5b7a-45d0-aedd-d96b9307257b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0f774091-eb3a-4162-a588-c645d4581f65"}]},"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/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"04c7fc172af139b75ed4873f3217f0e4"} device-1 | {"level":"info","message":"GET /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f? 200 28ms","method":"GET","requestID":"04c7fc172af139b75ed4873f3217f0e4","responseTime":28,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.133468,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f46d5938fe6890de6e300b9b3e62962d","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"228824f0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.958142,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308040,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0MH0.nxVvS2OEUg2_s-BfrNeY4oxnP9Lgben7-0Ph_QrPhiU"} 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":"f46d5938fe6890de6e300b9b3e62962d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:13:58.491981874Z"}]},"request_id":"795b7d94-3a47-4a76-9cd4-f4d669038356","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.917787} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f46d5938fe6890de6e300b9b3e62962d"},"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":"21/May/2024:16:14:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f1895ad8-d808-4941-9a2e-bcd49be46892? 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":"f46d5938fe6890de6e300b9b3e62962d"} device-1 | {"level":"info","message":"GET /devices/f1895ad8-d808-4941-9a2e-bcd49be46892? 200 21ms","method":"GET","requestID":"f46d5938fe6890de6e300b9b3e62962d","responseTime":21,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"94100c32-117f-424b-b4ee-2f6c2c95c162","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.9248114} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"482eb6db-7af9-4654-ac43-ce2a5e7a2678","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.9250557} 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":"228824f0-178d-11ef-9e06-b78ba83e54a6"},"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/28393cd3-d953-495d-9b2d-a84e3b3ed1e4'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4'"} 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 57ms","method":"POST","requestID":"228824f0-178d-11ef-9e06-b78ba83e54a6","responseTime":57,"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/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"56264ae6-0c70-47fd-96a8-11eae82cdbcd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308040.9953442} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.855502,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","rebac_allow":false,"scope_allow":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":"2296a3e0-178d-11ef-9e06-b78ba83e54a6"},"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/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling 200 12ms","method":"POST","requestID":"2296a3e0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:01Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d45498fa-5258-4bd6-abe4-f9a4f56b10af","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308041.0091448} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.531386,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","rebac_allow":false,"scope_allow":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":"2298c6c0-178d-11ef-9e06-b78ba83e54a6"},"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/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling 200 9ms","method":"POST","requestID":"2298c6c0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling"} device-1 | {"data":{"peerconnection":"28393cd3-d953-495d-9b2d-a84e3b3ed1e4","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/28393cd3-d953-495d-9b2d-a84e3b3ed1e4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"28393cd3-d953-495d-9b2d-a84e3b3ed1e4","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":"aaa8debb16563fe967711bcc4824b4ce","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/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"aaa8debb16563fe967711bcc4824b4ce","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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":"aaa8debb16563fe967711bcc4824b4ce"} device-1 | {"data":{"peerconnection":"28393cd3-d953-495d-9b2d-a84e3b3ed1e4","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892'"} device-1 | {"data":{"peerconnection":"28393cd3-d953-495d-9b2d-a84e3b3ed1e4","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/28393cd3-d953-495d-9b2d-a84e3b3ed1e4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"28393cd3-d953-495d-9b2d-a84e3b3ed1e4","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":"9abc851fbf3f15c51057c3160c56f784","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/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F28393cd3-d953-495d-9b2d-a84e3b3ed1e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"57c56326-d6f9-47ec-b23b-6a68dedae717","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.0872922} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.474549,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4","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":"23d58c80-178d-11ef-9e06-b78ba83e54a6"},"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/28393cd3-d953-495d-9b2d-a84e3b3ed1e4 200 14ms","method":"GET","requestID":"23d58c80-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"9abc851fbf3f15c51057c3160c56f784","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"9abc851fbf3f15c51057c3160c56f784"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fcd9d806-5d11-4986-b708-9f12a225d6a6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.1313112} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.385132,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","rebac_allow":false,"scope_allow":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":"23dc4340-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d0ce027b479365b126f02298e8ca8a4e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling 200 15ms","method":"POST","requestID":"23dc4340-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc8704fd-163d-4876-a6ac-7ac40e14b8fa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.1484463} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.598767,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.929796,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","rebac_allow":false,"scope_allow":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":"23df0260-178d-11ef-9e06-b78ba83e54a6"},"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":"experiment:http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} 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":"d0ce027b479365b126f02298e8ca8a4e"},"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/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling 200 19ms","method":"POST","requestID":"23df0260-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"} experiment-1 | {"level":"info","message":"GET /experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7 200 27ms","method":"GET","requestID":"d0ce027b479365b126f02298e8ca8a4e","responseTime":27,"status":200,"url":"/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"} gateway-1 | {"time_local":"21/May/2024:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d0ce027b479365b126f02298e8ca8a4e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"09f31f8ff37d1bf8d08871b2dbbd9532","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.698415,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} 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":"09f31f8ff37d1bf8d08871b2dbbd9532"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.919379,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} 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":"23e6f1a0-178d-11ef-9e06-b78ba83e54a6"},"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/28393cd3-d953-495d-9b2d-a84e3b3ed1e4' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"28393cd3-d953-495d-9b2d-a84e3b3ed1e4","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F28393cd3-d953-495d-9b2d-a84e3b3ed1e4': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F28393cd3-d953-495d-9b2d-a84e3b3ed1e4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"01e531ea-6cda-42fc-b972-598c23666a2c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.2098794} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"065fbe67-290e-46bf-9ce6-82035ce2aedc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.2102058} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"55e668d6606e7b3b37907c5f1ef6ad61","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":"8b3da84e7e2cfb6dbece731c2f745d3c","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":"23e6f1a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"28393cd3-d953-495d-9b2d-a84e3b3ed1e4","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/28393cd3-d953-495d-9b2d-a84e3b3ed1e4 204 40ms","method":"DELETE","requestID":"23e6f1a0-178d-11ef-9e06-b78ba83e54a6","responseTime":40,"status":204,"url":"/peerconnections/28393cd3-d953-495d-9b2d-a84e3b3ed1e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d373d85c-d9e6-4ce6-9f99-64dec239f68a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.2581024} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.223143,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f","object_type":"device","rebac_allow":false,"scope_allow":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":"23efcb40-178d-11ef-9e06-b78ba83e54a6"},"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/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling 200 12ms","method":"POST","requestID":"23efcb40-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb92fdfa1-da75-4ab4-8fbb-f917c0a28da7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb92fdfa1-da75-4ab4-8fbb-f917c0a28da7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"5bfbb5c5-65cf-4daa-ad7f-88267259ffeb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.2662525} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"237c512f-ec2a-4298-87fa-ceccf84de53c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.2664502} 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":"09f31f8ff37d1bf8d08871b2dbbd9532"},"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:47510","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1895ad8-d808-4941-9a2e-bcd49be46892","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b648bb4-9a3b-45e5-a89d-d88eabf10fdd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.2722175} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.226513,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1895ad8-d808-4941-9a2e-bcd49be46892","object_type":"device","rebac_allow":false,"scope_allow":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":"23f1ee20-178d-11ef-9e06-b78ba83e54a6"},"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/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling 200 11ms","method":"POST","requestID":"23f1ee20-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/f1895ad8-d808-4941-9a2e-bcd49be46892/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"} gateway-1 | {"time_local":"21/May/2024:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.144","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"09f31f8ff37d1bf8d08871b2dbbd9532"} gateway-1 | {"time_local":"21/May/2024:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2990","request_time":"4.251","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"9826fb20bbdc9890323ef278c6e5910c"} experiment-1 | {"level":"info","message":"DELETE /experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7 204 141ms","method":"DELETE","requestID":"09f31f8ff37d1bf8d08871b2dbbd9532","responseTime":141,"status":204,"url":"/experiments/b92fdfa1-da75-4ab4-8fbb-f917c0a28da7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 117ms","method":"POST","requestID":"55e668d6606e7b3b37907c5f1ef6ad61","responseTime":117,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.120","http_referrer":"","http_user_agent":"node-fetch","requestID":"55e668d6606e7b3b37907c5f1ef6ad61"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 117ms","method":"POST","requestID":"8b3da84e7e2cfb6dbece731c2f745d3c","responseTime":117,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.121","http_referrer":"","http_user_agent":"node-fetch","requestID":"8b3da84e7e2cfb6dbece731c2f745d3c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"8b32ff154f0d20df8522dc5aaaa69261","responseTime":6,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2501","request_time":"2.781","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e488c7d2a3ec48118b0e338d262a3b88"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.91894,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0bb4493a-ece7-4a7d-8ae0-e2e7b5cfda6f' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} 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":"8b32ff154f0d20df8522dc5aaaa69261"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a56a7ebd-f273-4f1b-a576-9a473a5e6baf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.3485105} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b32ff154f0d20df8522dc5aaaa69261"},"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/f1895ad8-d808-4941-9a2e-bcd49be46892' 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aa6c2e46-0838-4b4a-a4e2-6d1f75e58a01","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.3549132} 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":"8b32ff154f0d20df8522dc5aaaa69261"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"9dc50fe5-8808-4f47-a99d-ec35b21fd13c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.3668106} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f97d402f-c3ee-4a7a-81e3-ae2fa1a3f5c3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.366904} 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":"8b32ff154f0d20df8522dc5aaaa69261"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.366793965Z"}]},"request_id":"3c81e2e4-854f-42cd-81d6-7ccaf122adf9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.3737953} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8b32ff154f0d20df8522dc5aaaa69261"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"8b32ff154f0d20df8522dc5aaaa69261","responseTime":43,"status":201,"url":"/devices?"} 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":"8b32ff154f0d20df8522dc5aaaa69261"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c03b57caf2b88c659ef546d70418c45d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.622033,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} 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":"c03b57caf2b88c659ef546d70418c45d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5b95f37d-bdad-4034-8a74-9e5f6924d835","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.4066393} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c03b57caf2b88c659ef546d70418c45d"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bdc269ff-5e59-44c7-aaed-6a8205523cd2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.4123626} 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":"c03b57caf2b88c659ef546d70418c45d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d537f837-3bff-41d2-890d-f586d740b39f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.4227548} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc8d28e0-63d5-4480-8d80-7fd9b9877621","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.4228795} 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":"c03b57caf2b88c659ef546d70418c45d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.422737894Z"}]},"request_id":"0aaea89b-19f7-4771-8316-877ba0392ee1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.427438} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c03b57caf2b88c659ef546d70418c45d"},"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":"21/May/2024:16:14:03 +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":"c03b57caf2b88c659ef546d70418c45d"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"c03b57caf2b88c659ef546d70418c45d","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2a24b95a0ae55bc2b95a37d71a9e2947","responseTime":5,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a7c90393b3519d6161d3b7fc08970bed","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661589,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a24b95a0ae55bc2b95a37d71a9e2947"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.65539,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a7c90393b3519d6161d3b7fc08970bed"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.366793965Z"}]},"request_id":"c812043f-439c-4c48-930b-fe36c9691dc6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.936182} 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":"2a24b95a0ae55bc2b95a37d71a9e2947"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.422737894Z"}]},"request_id":"6763f2c8-bd68-4657-b3a0-3449509c2848","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.9377341} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a7c90393b3519d6161d3b7fc08970bed"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2bb1ed73-1b55-4b26-90ce-fa95a5eb20ab","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.943027} 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":"2a24b95a0ae55bc2b95a37d71a9e2947"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c77bb678-0f57-49c4-9480-1287ad3ede6c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.944803} 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":"a7c90393b3519d6161d3b7fc08970bed"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.422737894Z"}]},"request_id":"bd8b0b5c-c719-477d-91e5-de46709849f3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.9483356} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a7c90393b3519d6161d3b7fc08970bed"},"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":"21/May/2024:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a7c90393b3519d6161d3b7fc08970bed"} device-1 | {"level":"info","message":"PATCH /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd 200 24ms","method":"PATCH","requestID":"a7c90393b3519d6161d3b7fc08970bed","responseTime":24,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7a8e2e07609dc546a6620fbcfe5e502b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723545,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} 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":"7a8e2e07609dc546a6620fbcfe5e502b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.366793965Z"}]},"request_id":"b24d5492-41e8-4af2-87b5-c53eec21d743","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308043.9739082} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a24b95a0ae55bc2b95a37d71a9e2947"},"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":"21/May/2024:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/07132c95-8a18-4c26-978f-364818b86a82 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.060","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2a24b95a0ae55bc2b95a37d71a9e2947"} device-1 | {"level":"info","message":"PATCH /devices/07132c95-8a18-4c26-978f-364818b86a82 200 53ms","method":"PATCH","requestID":"2a24b95a0ae55bc2b95a37d71a9e2947","responseTime":53,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4998bdc3002d6a13bbfa0fcc276064a9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:03Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.885438,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:03Z"} gateway-1 | {"time_local":"21/May/2024:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/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":"7a8e2e07609dc546a6620fbcfe5e502b"} device-1 | {"level":"info","message":"POST /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/websocket 200 28ms","method":"POST","requestID":"7a8e2e07609dc546a6620fbcfe5e502b","responseTime":28,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/websocket"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308043,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0M30.dKSk2FShdm1tno0fxH2zlFD6PiwXRLiJ1SooMKswjko"} 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":"4998bdc3002d6a13bbfa0fcc276064a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"device 'http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/07132c95-8a18-4c26-978f-364818b86a82/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4998bdc3002d6a13bbfa0fcc276064a9"} device-1 | {"level":"info","message":"POST /devices/07132c95-8a18-4c26-978f-364818b86a82/websocket 200 20ms","method":"POST","requestID":"4998bdc3002d6a13bbfa0fcc276064a9","responseTime":20,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"22dd85abaeb5a8d076255c624d069a14","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.740023,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} 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":"22dd85abaeb5a8d076255c624d069a14"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.366793965Z"}]},"request_id":"d5474b21-df11-4fa6-82a3-3dd298a24b7a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.0281503} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"22dd85abaeb5a8d076255c624d069a14"},"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":"21/May/2024:16:14:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/07132c95-8a18-4c26-978f-364818b86a82? 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":"22dd85abaeb5a8d076255c624d069a14"} device-1 | {"level":"info","message":"GET /devices/07132c95-8a18-4c26-978f-364818b86a82? 200 13ms","method":"GET","requestID":"22dd85abaeb5a8d076255c624d069a14","responseTime":13,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"acf99346fd759e4d6f00f28b51ac9248","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.764685,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} 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":"acf99346fd759e4d6f00f28b51ac9248"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.422737894Z"}]},"request_id":"5d9a2856-8f6e-443c-bcd9-274a3b9a6c43","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.0451236} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"acf99346fd759e4d6f00f28b51ac9248"},"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":"21/May/2024:16:14:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd? 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":"acf99346fd759e4d6f00f28b51ac9248"} device-1 | {"level":"info","message":"GET /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd? 200 13ms","method":"GET","requestID":"acf99346fd759e4d6f00f28b51ac9248","responseTime":13,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7d7a73300bba2c144bc7983e6d7a2ffb","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:47510","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.957752,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} 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":"7d7a73300bba2c144bc7983e6d7a2ffb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"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:47510","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.157382,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"24721aa0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.713929,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"247241b0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.366793965Z"}]},"request_id":"bcc862d6-a612-41c3-ae82-b2ce7e8c21c4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.1160114} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"24721aa0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.422737894Z"}]},"request_id":"5108133c-17e1-450a-8773-d595de99fd9c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.1173577} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"247241b0-178d-11ef-9e06-b78ba83e54a6"},"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/07132c95-8a18-4c26-978f-364818b86a82? 200 19ms","method":"GET","requestID":"24721aa0-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd? 200 19ms","method":"GET","requestID":"247241b0-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"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/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.909762,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"247d8c50-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.065567,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} 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":"247dda70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c1b84f65-8b8f-4bf9-b199-84be3f9a34bd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.1947274} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.477854,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","rebac_allow":false,"scope_allow":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":"247e2890-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.366793965Z"}]},"request_id":"6f10cae8-80f2-4c4c-879e-5de255f7186f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.197565} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/07132c95-8a18-4c26-978f-364818b86a82/signaling 200 17ms","method":"POST","requestID":"247e2890-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82/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":"247d8c50-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.422737894Z"}]},"request_id":"9bfeada2-a9cb-4d2e-826a-353c1b5eb517","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2018075} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"247dda70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"ca4087e6-4e93-4b44-9bd9-f95957d9ab8e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2067187} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c8cd9511-8cc3-49a0-84c2-6b728cf370d6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2069159} 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":"7d7a73300bba2c144bc7983e6d7a2ffb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} device-1 | {"level":"info","message":"GET /devices/07132c95-8a18-4c26-978f-364818b86a82? 200 29ms","method":"GET","requestID":"247d8c50-178d-11ef-9e06-b78ba83e54a6","responseTime":29,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd? 200 29ms","method":"GET","requestID":"247dda70-178d-11ef-9e06-b78ba83e54a6","responseTime":29,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ebd17c89-96ca-4132-9f88-68b6567a04eb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2135344} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.56417,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","rebac_allow":false,"scope_allow":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":"24815ce0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"21/May/2024:16:14:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.170","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7d7a73300bba2c144bc7983e6d7a2ffb"} experiment-1 | {"level":"info","message":"POST /experiments? 201 165ms","method":"POST","requestID":"7d7a73300bba2c144bc7983e6d7a2ffb","responseTime":165,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f0e43740-e8a4-4f39-b60e-8d1d8c2b7b9a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2216985} device-1 | {"level":"info","message":"POST /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling 200 16ms","method":"POST","requestID":"24815ce0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.737679,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","rebac_allow":false,"scope_allow":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":"2482e380-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4a03b1243cb3d3ed8ca60049a5b0aa2b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/07132c95-8a18-4c26-978f-364818b86a82/signaling 200 12ms","method":"POST","requestID":"2482e380-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644808,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a03b1243cb3d3ed8ca60049a5b0aa2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0ff0c5b7-e504-49e6-be1d-5fb54b60e81c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2345493} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.979986,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","rebac_allow":false,"scope_allow":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":"24850660-178d-11ef-9e06-b78ba83e54a6"},"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/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling 200 10ms","method":"POST","requestID":"24850660-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.366793965Z"}]},"request_id":"b1fd1b42-080e-4518-bf8a-19eecfe7f1ca","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.240704} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"609c67ee-aac8-46dc-affb-4a597e924ca5"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"aecd16be-dbb6-4817-88ab-28ffb9b7882e"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b4a856b8-2283-4d6f-b39a-7c13b779d9bc"}]},"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/07132c95-8a18-4c26-978f-364818b86a82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd"}],"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":"4a03b1243cb3d3ed8ca60049a5b0aa2b"},"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":"21/May/2024:16:14:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/07132c95-8a18-4c26-978f-364818b86a82? 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":"4a03b1243cb3d3ed8ca60049a5b0aa2b"} device-1 | {"level":"info","message":"GET /devices/07132c95-8a18-4c26-978f-364818b86a82? 200 17ms","method":"GET","requestID":"4a03b1243cb3d3ed8ca60049a5b0aa2b","responseTime":17,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.883115,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} 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":"24870230-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b4cf884b530e0cf1ca76172f37a59f66","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.940127,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308044,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0NH0.AdCSALJOifTThKxpyKcIjdh766z0xvGIOr_k4E1c1jQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b4cf884b530e0cf1ca76172f37a59f66"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"442ab4a3-646d-4403-a971-f1cd158825bf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2586532} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5bab89a0-bc6e-4314-be72-486b6ebec900","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2590387} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:03.422737894Z"}]},"request_id":"aaac5f6f-de4e-4368-bf37-50355c398046","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.2600355} 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":"24870230-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b4cf884b530e0cf1ca76172f37a59f66"},"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":"21/May/2024:16:14:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b4cf884b530e0cf1ca76172f37a59f66"} device-1 | {"level":"info","message":"GET /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd? 200 27ms","method":"GET","requestID":"b4cf884b530e0cf1ca76172f37a59f66","responseTime":27,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd?"} 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/75716b68-999e-4585-9469-f19c7ab67aee'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee'"} 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":"24870230-178d-11ef-9e06-b78ba83e54a6","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"517fe5e6-54d1-41be-accc-66b1d96d00bd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.323397} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.743511,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","rebac_allow":false,"scope_allow":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":"249273e0-178d-11ef-9e06-b78ba83e54a6"},"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/07132c95-8a18-4c26-978f-364818b86a82/signaling 200 11ms","method":"POST","requestID":"249273e0-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"87609ce2-1cc3-4faa-ae71-6cfaa3bc84b0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308044.3357959} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.273951,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","rebac_allow":false,"scope_allow":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":"24946fb0-178d-11ef-9e06-b78ba83e54a6"},"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/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling 200 9ms","method":"POST","requestID":"24946fb0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling"} device-1 | {"data":{"peerconnection":"75716b68-999e-4585-9469-f19c7ab67aee","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"75716b68-999e-4585-9469-f19c7ab67aee","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/75716b68-999e-4585-9469-f19c7ab67aee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"75716b68-999e-4585-9469-f19c7ab67aee","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":"9fe5e80e61bcb5b0d1606f35fecd0814","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/07132c95-8a18-4c26-978f-364818b86a82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"9fe5e80e61bcb5b0d1606f35fecd0814","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"9fe5e80e61bcb5b0d1606f35fecd0814"} device-1 | {"data":{"peerconnection":"75716b68-999e-4585-9469-f19c7ab67aee","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"75716b68-999e-4585-9469-f19c7ab67aee","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/75716b68-999e-4585-9469-f19c7ab67aee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"75716b68-999e-4585-9469-f19c7ab67aee","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":"7662fcfdb6383e958b99e87a68c3fa97","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/07132c95-8a18-4c26-978f-364818b86a82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F75716b68-999e-4585-9469-f19c7ab67aee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c4c7f696-cfe3-42e1-8975-60a2e9856ff3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.4263694} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.920346,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee","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":"25d30a30-178d-11ef-9e06-b78ba83e54a6"},"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/75716b68-999e-4585-9469-f19c7ab67aee 200 15ms","method":"GET","requestID":"25d30a30-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 48ms","method":"POST","requestID":"7662fcfdb6383e958b99e87a68c3fa97","responseTime":48,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"7662fcfdb6383e958b99e87a68c3fa97"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"41327914-b861-44fe-845e-385750e4f8a7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.467176} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.02773,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","rebac_allow":false,"scope_allow":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":"25d924b0-178d-11ef-9e06-b78ba83e54a6"},"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/07132c95-8a18-4c26-978f-364818b86a82/signaling 200 15ms","method":"POST","requestID":"25d924b0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"83178214-4fd5-4866-b9b3-9fcd85ddfd07","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.485941} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.054878,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s","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":"25dc0ae0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e20f81bbc13560ff26c92b68f772e9b0","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling 200 18ms","method":"POST","requestID":"25dc0ae0-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.256533,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308046,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e20f81bbc13560ff26c92b68f772e9b0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"} gateway-1 | {"time_local":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e20f81bbc13560ff26c92b68f772e9b0"} experiment-1 | {"level":"info","message":"GET /experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b 200 24ms","method":"GET","requestID":"e20f81bbc13560ff26c92b68f772e9b0","responseTime":24,"status":200,"url":"/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2bb0bb00bcde0da16e416bc4dce8ab46","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.281306,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308046,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s"} 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":"2bb0bb00bcde0da16e416bc4dce8ab46"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.064004,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308046,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s"} 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":"25e61d00-178d-11ef-9e06-b78ba83e54a6"},"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/75716b68-999e-4585-9469-f19c7ab67aee' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"75716b68-999e-4585-9469-f19c7ab67aee","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":"3a260249b39d7769c0ae0ff01b8d7c1e","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F75716b68-999e-4585-9469-f19c7ab67aee': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F75716b68-999e-4585-9469-f19c7ab67aee","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"baa67874-74db-45e8-9eaf-67f5bdc09ece","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.5742955} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"03ce68c5-3e93-4d99-b82b-3235b993a327","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.5747244} 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/07132c95-8a18-4c26-978f-364818b86a82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"47f64c0f16ad0e2e569e1083c0a51e17","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":"connected","url":"http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"25e61d00-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"data":{"peerconnection":"75716b68-999e-4585-9469-f19c7ab67aee","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/75716b68-999e-4585-9469-f19c7ab67aee 204 60ms","method":"DELETE","requestID":"25e61d00-178d-11ef-9e06-b78ba83e54a6","responseTime":60,"status":204,"url":"/peerconnections/75716b68-999e-4585-9469-f19c7ab67aee"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07132c95-8a18-4c26-978f-364818b86a82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5aa9e282-5254-4b08-9d10-b0a23dd3b724","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.6422105} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.287266,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82","object_type":"device","rebac_allow":false,"scope_allow":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":"25f3d8a0-178d-11ef-9e06-b78ba83e54a6"},"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/07132c95-8a18-4c26-978f-364818b86a82/signaling 200 17ms","method":"POST","requestID":"25f3d8a0-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/07132c95-8a18-4c26-978f-364818b86a82/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"98225c0a-e388-486f-be9f-2a528b4185d9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.6515195} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4f25ba12-f736-4748-896d-96ee1becc136","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.652218} 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":"2bb0bb00bcde0da16e416bc4dce8ab46"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F19a72065-10fc-4a8a-8ce8-317f32cb56dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e9ce4e92-e4bd-4e0e-ab7b-ad94b979aad2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.663351} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.848485,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd","object_type":"device","rebac_allow":false,"scope_allow":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":"25f70cf0-178d-11ef-9e06-b78ba83e54a6"},"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/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling 200 16ms","method":"POST","requestID":"25f70cf0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/19a72065-10fc-4a8a-8ce8-317f32cb56dd/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"} gateway-1 | {"time_local":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.204","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2bb0bb00bcde0da16e416bc4dce8ab46"} gateway-1 | {"time_local":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2506","request_time":"2.722","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"02adea1075688037d96977407ad840d5"} gateway-1 | {"time_local":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2506","request_time":"2.738","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1fe08746d232f7a850716c665a8c3954"} experiment-1 | {"level":"info","message":"DELETE /experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b 204 199ms","method":"DELETE","requestID":"2bb0bb00bcde0da16e416bc4dce8ab46","responseTime":199,"status":204,"url":"/experiments/2b5b8f53-7a4d-4e08-97de-c9ac6fdb5f1b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"3a260249b39d7769c0ae0ff01b8d7c1e","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.159","http_referrer":"","http_user_agent":"node-fetch","requestID":"3a260249b39d7769c0ae0ff01b8d7c1e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"47f64c0f16ad0e2e569e1083c0a51e17","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch","requestID":"47f64c0f16ad0e2e569e1083c0a51e17"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ca8c17ca272c0a677b114439d333c79e","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/19a72065-10fc-4a8a-8ce8-317f32cb56dd' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.911929,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308046,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/07132c95-8a18-4c26-978f-364818b86a82' closed"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca8c17ca272c0a677b114439d333c79e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3efe40f4-15a6-4562-95da-b64db762dfbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"39f5f357-b73d-4f4e-bef7-77bf8f6c0b9d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.7578957} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca8c17ca272c0a677b114439d333c79e"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e5be5c9-83f1-4454-a2d8-bf2593bbe4fd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.7662206} 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":"ca8c17ca272c0a677b114439d333c79e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3efe40f4-15a6-4562-95da-b64db762dfbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"e8587eeb-e202-4584-9f52-37f570203957","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.7806022} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5784afb9-6519-4ca2-bc8d-306b5a4b0d6e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.7809272} 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":"ca8c17ca272c0a677b114439d333c79e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3efe40f4-15a6-4562-95da-b64db762dfbd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3efe40f4-15a6-4562-95da-b64db762dfbd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:06.780573509Z"}]},"request_id":"7db593af-9588-474f-85fb-7cc430c79bbc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.7870197} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca8c17ca272c0a677b114439d333c79e"},"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":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca8c17ca272c0a677b114439d333c79e"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"ca8c17ca272c0a677b114439d333c79e","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fcd206c0e0761ee9c88c92a47a9c0c13","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.782485,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308046,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s"} 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":"fcd206c0e0761ee9c88c92a47a9c0c13"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb19eaea9-552c-4d52-ba22-f316eb97c193","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"41b9d22f-7ecd-4521-84c2-638c7a228063","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8160894} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fcd206c0e0761ee9c88c92a47a9c0c13"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c12cc18-76be-496c-9a78-d361c87b1149","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8222091} 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":"fcd206c0e0761ee9c88c92a47a9c0c13"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb19eaea9-552c-4d52-ba22-f316eb97c193","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"5f136864-eecd-4350-9dd4-f7003c8527b1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8333027} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"60087c06-df45-41d1-a289-3e7c568d465a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8334656} 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":"fcd206c0e0761ee9c88c92a47a9c0c13"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb19eaea9-552c-4d52-ba22-f316eb97c193","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb19eaea9-552c-4d52-ba22-f316eb97c193","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:06.833286195Z"}]},"request_id":"a0a5a836-4d60-4fd9-8d7b-9d765b70f605","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8391204} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fcd206c0e0761ee9c88c92a47a9c0c13"},"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":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fcd206c0e0761ee9c88c92a47a9c0c13"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"fcd206c0e0761ee9c88c92a47a9c0c13","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1d0c30d1c512605f08117b9691d46782","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.671032,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308046,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s"} 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":"1d0c30d1c512605f08117b9691d46782"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe897bc02-a2ac-443d-a02d-d0a17b94c8ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d3402c28-7fb9-4daf-aa98-16f2cfd48a3b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8663924} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d0c30d1c512605f08117b9691d46782"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"faabfead-dc8a-4ad2-8320-42da76c17727","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8708045} 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":"1d0c30d1c512605f08117b9691d46782"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe897bc02-a2ac-443d-a02d-d0a17b94c8ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d4c5a221-56f7-433b-b003-2af74974a4c3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.884507} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4045caa3-3381-4aed-be9a-06b7f6b2ee8b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8846889} 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":"1d0c30d1c512605f08117b9691d46782"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe897bc02-a2ac-443d-a02d-d0a17b94c8ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe897bc02-a2ac-443d-a02d-d0a17b94c8ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:06.884493806Z"}]},"request_id":"8e5be845-a8c9-4c26-a96d-e350624af91c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.8889885} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d0c30d1c512605f08117b9691d46782"},"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":"21/May/2024:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1d0c30d1c512605f08117b9691d46782"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"1d0c30d1c512605f08117b9691d46782","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"81b5684f74b75bdbf177df8bc18db23c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.726135,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308046,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s"} 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":"81b5684f74b75bdbf177df8bc18db23c"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F894b9228-d854-4e0c-86f0-7caaad712f9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c22036ea-9181-4dcc-b3c0-3d32c6a0bcac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.9169602} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"81b5684f74b75bdbf177df8bc18db23c"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e63f0bd6-36ed-456f-8a62-fbcf69f5ea4e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.9215775} 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":"81b5684f74b75bdbf177df8bc18db23c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F894b9228-d854-4e0c-86f0-7caaad712f9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"99eb046c-0ea1-49a8-8e6a-db684d13a806","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.932505} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2041e4a-51d6-48cc-9bae-79c8c576b429","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.932604} 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":"81b5684f74b75bdbf177df8bc18db23c"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F894b9228-d854-4e0c-86f0-7caaad712f9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F894b9228-d854-4e0c-86f0-7caaad712f9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:06.932487513Z"}]},"request_id":"8275322e-95f2-467e-8ada-d37e930fac2c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.9382353} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"81b5684f74b75bdbf177df8bc18db23c"},"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":"21/May/2024:16:14:06 +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":"81b5684f74b75bdbf177df8bc18db23c"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"81b5684f74b75bdbf177df8bc18db23c","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2d23bb14babe01e5386cbe62837ae11a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.279717,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308046,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0Nn0.Kr8V5Fld2LT5tzlw70SE0OYJAvowp0ms-Xk3c4Izl3s"} 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":"2d23bb14babe01e5386cbe62837ae11a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846783ef-2d6a-4bb0-ac46-bc18c0065894","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"32ed540d-e124-4158-958e-1d5682b3ed58","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.974528} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d23bb14babe01e5386cbe62837ae11a"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d5a8013d-0e78-4426-9c3b-dd58d33067c3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308046.983276} 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":"2d23bb14babe01e5386cbe62837ae11a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846783ef-2d6a-4bb0-ac46-bc18c0065894","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"00040a1c-4d83-4e69-b740-8d5884e41eeb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.002983} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2ba05a79-91c4-4487-8e76-cc433fe3ac0c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.0032356} authorization-1 | {"level":"info","message":"POST /relations/update 200 23ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d23bb14babe01e5386cbe62837ae11a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846783ef-2d6a-4bb0-ac46-bc18c0065894","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F846783ef-2d6a-4bb0-ac46-bc18c0065894","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.002954454Z"}]},"request_id":"0b27decd-d32a-4c93-abf1-b790342a5d3d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.0108275} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d23bb14babe01e5386cbe62837ae11a"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.071","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2d23bb14babe01e5386cbe62837ae11a"} device-1 | {"level":"info","message":"POST /devices? 201 64ms","method":"POST","requestID":"2d23bb14babe01e5386cbe62837ae11a","responseTime":64,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"53b9834d5767674d058da186659a0c9b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.269916,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"53b9834d5767674d058da186659a0c9b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cb687c9-7d47-4cab-94e0-9d270ef109df","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ce88bd9a-48f5-4b21-8469-de419817347c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.050087} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53b9834d5767674d058da186659a0c9b"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e74bdd70-5d1e-4266-b465-0f2578c3fa46","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.058028} 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":"53b9834d5767674d058da186659a0c9b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cb687c9-7d47-4cab-94e0-9d270ef109df","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"63cf91e8-8e7b-4caa-b188-58d2452d1ab1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.0700173} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"160763f2-2275-47c3-a90a-ceb745d8fd2a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.0703652} 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":"53b9834d5767674d058da186659a0c9b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cb687c9-7d47-4cab-94e0-9d270ef109df","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cb687c9-7d47-4cab-94e0-9d270ef109df","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.069995637Z"}]},"request_id":"091e154c-0477-4bb3-9042-3660bebb940a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.0770633} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53b9834d5767674d058da186659a0c9b"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"53b9834d5767674d058da186659a0c9b"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"53b9834d5767674d058da186659a0c9b","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"70efd76c110df08ade32c46380aaeffe","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.351144,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"70efd76c110df08ade32c46380aaeffe"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdea839ad-e23c-4b99-b0c4-67d6e1610f89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"627c8064-60e8-4e19-a304-ca8df67468db","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.1132793} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"70efd76c110df08ade32c46380aaeffe"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fa28792e-09eb-49f0-b17e-18f4f9b8a50c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.120891} 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":"70efd76c110df08ade32c46380aaeffe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdea839ad-e23c-4b99-b0c4-67d6e1610f89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"e424f74d-5230-463c-ba3c-f535f55ccdd9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.1350403} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2aa7d29a-49b5-41e4-bff2-2d20ec73c27c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.135197} 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":"70efd76c110df08ade32c46380aaeffe"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdea839ad-e23c-4b99-b0c4-67d6e1610f89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdea839ad-e23c-4b99-b0c4-67d6e1610f89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.135015491Z"}]},"request_id":"13bd666d-f56e-4a86-a39c-4b088e5f2476","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.141506} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"70efd76c110df08ade32c46380aaeffe"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"70efd76c110df08ade32c46380aaeffe"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"70efd76c110df08ade32c46380aaeffe","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a9a261b77eaf2cbce72fc3130056737a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.240335,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"a9a261b77eaf2cbce72fc3130056737a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe10b1fae-5ac5-44c6-893f-5d79f4f3c397","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c19ff15d-8224-498b-aa38-39eb493b3811","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.17935} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a9a261b77eaf2cbce72fc3130056737a"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"775fb5bd-7992-4630-9372-eb939d3bf1d7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.1871316} 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":"a9a261b77eaf2cbce72fc3130056737a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe10b1fae-5ac5-44c6-893f-5d79f4f3c397","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"25dfd33b-4d4f-4060-9c06-c79d433e713d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.1973193} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"87df46fb-cc5e-4849-bde1-d89dcb4d9fe6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.1974664} 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":"a9a261b77eaf2cbce72fc3130056737a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe10b1fae-5ac5-44c6-893f-5d79f4f3c397","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe10b1fae-5ac5-44c6-893f-5d79f4f3c397","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.197287905Z"}]},"request_id":"8e2b18ac-fc1b-421c-8c90-483c9c06b6f0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.204358} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a9a261b77eaf2cbce72fc3130056737a"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9a261b77eaf2cbce72fc3130056737a"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"a9a261b77eaf2cbce72fc3130056737a","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7d50951ae51c1320f45ab62ee4fec381","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.718179,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"7d50951ae51c1320f45ab62ee4fec381"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faca7d634-091a-434b-9294-bfb61b3e6a02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e8114d7c-0ae8-4a16-a0ac-08eedfbef5c5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.2409246} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7d50951ae51c1320f45ab62ee4fec381"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ca64d677-aa40-45b0-a00f-5b75e42afaa5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.2484095} 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":"7d50951ae51c1320f45ab62ee4fec381"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faca7d634-091a-434b-9294-bfb61b3e6a02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d51dc4cb-3bab-426f-ad72-ba3271ba1317","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.2600315} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"77c014aa-b1af-4473-aac9-feb170bd6006","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.260331} 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":"7d50951ae51c1320f45ab62ee4fec381"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faca7d634-091a-434b-9294-bfb61b3e6a02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faca7d634-091a-434b-9294-bfb61b3e6a02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.259999994Z"}]},"request_id":"68404fe0-4638-4f6e-a541-37873d7115f5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.265087} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7d50951ae51c1320f45ab62ee4fec381"},"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":"21/May/2024:16:14:07 +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":"7d50951ae51c1320f45ab62ee4fec381"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"7d50951ae51c1320f45ab62ee4fec381","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8007deba84a675b2a4819529e6c7c222","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.271607,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"8007deba84a675b2a4819529e6c7c222"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7646fc33-0cbb-45f1-ab13-12c15a3eb52f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b8b9c03b-01fe-4101-af1c-9d1592b753b3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.3023794} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8007deba84a675b2a4819529e6c7c222"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8189c563-c218-4391-bbbb-6d939fa3aa9a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.3097348} 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":"8007deba84a675b2a4819529e6c7c222"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7646fc33-0cbb-45f1-ab13-12c15a3eb52f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"c3adac61-ded2-403f-8c25-91bdd6c7e794","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.3220444} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d86d5eb8-fe06-484f-a77b-706d23e679b4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.3225513} 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":"8007deba84a675b2a4819529e6c7c222"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7646fc33-0cbb-45f1-ab13-12c15a3eb52f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7646fc33-0cbb-45f1-ab13-12c15a3eb52f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.322020204Z"}]},"request_id":"7e2b81ce-5261-40f6-982c-9b578998fdea","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.327952} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8007deba84a675b2a4819529e6c7c222"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8007deba84a675b2a4819529e6c7c222"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"8007deba84a675b2a4819529e6c7c222","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"634337e786a12c80ff5827460b7dedd6","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.229816,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"634337e786a12c80ff5827460b7dedd6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7e5028fb-edf0-48b6-81f5-f9a5f873aaab","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.3657007} 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":"634337e786a12c80ff5827460b7dedd6"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5532aff2-6522-431b-8faa-dde05e742e27","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.373518} 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":"634337e786a12c80ff5827460b7dedd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"8d3ef874-3bac-4475-a693-f77704becdfb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.385083} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1b06d120-7b04-497f-9dfe-ecc5d514b39b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.3854687} 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":"634337e786a12c80ff5827460b7dedd6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.385059180Z"}]},"request_id":"1fe00d3a-85a3-489c-8f26-80e95a2b01a0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.3914135} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"634337e786a12c80ff5827460b7dedd6"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"634337e786a12c80ff5827460b7dedd6"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"634337e786a12c80ff5827460b7dedd6","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"187648b4092c13ec982a0d4cdde2712f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.339545,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"187648b4092c13ec982a0d4cdde2712f"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fb5f9227-e378-413b-a2ff-bf67d55fe1ea","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.428776} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"187648b4092c13ec982a0d4cdde2712f"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e2f98e2-69af-4c40-aecb-8ccf3f743397","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.43774} 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":"187648b4092c13ec982a0d4cdde2712f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d0b827bf-a452-4633-9e05-6ed16ee20794","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.451255} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"165db575-9333-4eea-95bd-f072a6315f73","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.4514124} 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":"187648b4092c13ec982a0d4cdde2712f"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.451219882Z"}]},"request_id":"f42d5d8a-8c04-4228-bb96-1221c86e81ab","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.4573796} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"187648b4092c13ec982a0d4cdde2712f"},"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 56ms","method":"POST","requestID":"187648b4092c13ec982a0d4cdde2712f","responseTime":56,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"187648b4092c13ec982a0d4cdde2712f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"817c7465475d81a98f6f270f29bed8ab","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.369807,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"817c7465475d81a98f6f270f29bed8ab"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"602b5fc6-4369-4526-9533-981409fbccb4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.4903617} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"817c7465475d81a98f6f270f29bed8ab"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"992022a4-6c4b-4490-89e0-81fa2906c6d8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.4977944} 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":"817c7465475d81a98f6f270f29bed8ab"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"3217d5a5-89af-4b85-80f9-cc98c2f604c9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.5096948} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46892080-3822-469a-9135-b3b640a81bc3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.5100236} 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":"817c7465475d81a98f6f270f29bed8ab"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.509669370Z"}]},"request_id":"ca809640-9fe2-4d17-8c8f-83a526ceeb22","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.516955} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"817c7465475d81a98f6f270f29bed8ab"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"817c7465475d81a98f6f270f29bed8ab","responseTime":52,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"817c7465475d81a98f6f270f29bed8ab"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4ef1166b2a3cf826742364021c5dcb13","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.225519,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4ef1166b2a3cf826742364021c5dcb13"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.385059180Z"}]},"request_id":"b890a90e-fca3-41a7-9d1c-2f8895d7b35f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.544157} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4ef1166b2a3cf826742364021c5dcb13"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"24446f5d-fbca-4821-a65d-01a7cb66a48f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.5526605} 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":"4ef1166b2a3cf826742364021c5dcb13"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.385059180Z"}]},"request_id":"de3adee5-3a75-4928-bfdf-7f4fc4475c50","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.5663054} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4ef1166b2a3cf826742364021c5dcb13"},"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/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b? 200 42ms","method":"PATCH","requestID":"4ef1166b2a3cf826742364021c5dcb13","responseTime":42,"status":200,"url":"/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b?"} gateway-1 | {"time_local":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4ef1166b2a3cf826742364021c5dcb13"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8b467d59bfb61fbf90d21d3a29120c60","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.768441,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"8b467d59bfb61fbf90d21d3a29120c60"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.451219882Z"}]},"request_id":"934e143b-ec53-4b5c-82ce-7437ace1b8dd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.5926588} 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":"8b467d59bfb61fbf90d21d3a29120c60"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e8cf33c-433f-426e-89a6-416e0c6713e1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.6007593} 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":"8b467d59bfb61fbf90d21d3a29120c60"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.451219882Z"}]},"request_id":"cb3482ae-e0fc-41dc-a2d4-fc9cef5db458","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.6148388} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8b467d59bfb61fbf90d21d3a29120c60"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8b467d59bfb61fbf90d21d3a29120c60"} device-1 | {"level":"info","message":"PATCH /devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600? 200 42ms","method":"PATCH","requestID":"8b467d59bfb61fbf90d21d3a29120c60","responseTime":42,"status":200,"url":"/devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0e46e930028b75c1f91e6aca3c6280eb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.204816,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f03ed683-a927-4682-bbcf-29b168d0eba9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f03ed683-a927-4682-bbcf-29b168d0eba9","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e46e930028b75c1f91e6aca3c6280eb"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.509669370Z"}]},"request_id":"d9264d75-729b-469c-bcdc-de65f833d921","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.6415756} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e46e930028b75c1f91e6aca3c6280eb"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e51e0809-7665-4227-93f8-0660b7d61d08","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.6470392} 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":"0e46e930028b75c1f91e6aca3c6280eb"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.509669370Z"}]},"request_id":"487f427c-b36d-4e75-a9df-9052e4624758","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.658511} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e46e930028b75c1f91e6aca3c6280eb"},"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/f03ed683-a927-4682-bbcf-29b168d0eba9? 200 34ms","method":"PATCH","requestID":"0e46e930028b75c1f91e6aca3c6280eb","responseTime":34,"status":200,"url":"/devices/f03ed683-a927-4682-bbcf-29b168d0eba9?"} gateway-1 | {"time_local":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f03ed683-a927-4682-bbcf-29b168d0eba9? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0e46e930028b75c1f91e6aca3c6280eb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b25f29230ae3927dc481b68061ab088d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.718727,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b25f29230ae3927dc481b68061ab088d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe51b3fd9-4aa7-40d2-8a2f-d8750095d93b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.385059180Z"}]},"request_id":"36529c0d-46cd-456f-8f72-173b7f8bbab9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.6797569} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b25f29230ae3927dc481b68061ab088d"},"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:47510","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.379855,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.326849,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3efe40f4-15a6-4562-95da-b64db762dfbd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3efe40f4-15a6-4562-95da-b64db762dfbd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"b25f29230ae3927dc481b68061ab088d"},"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/b19eaea9-552c-4d52-ba22-f316eb97c193","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b19eaea9-552c-4d52-ba22-f316eb97c193","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"b25f29230ae3927dc481b68061ab088d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:56382","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56386","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56382","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.42013,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56386","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.320404,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e897bc02-a2ac-443d-a02d-d0a17b94c8ee","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e897bc02-a2ac-443d-a02d-d0a17b94c8ee","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"b25f29230ae3927dc481b68061ab088d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"b25f29230ae3927dc481b68061ab088d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b25f29230ae3927dc481b68061ab088d"} device-1 | {"level":"info","message":"GET /devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b? 200 40ms","method":"GET","requestID":"b25f29230ae3927dc481b68061ab088d","responseTime":40,"status":200,"url":"/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"09a8b46d448d59660f86dab81e457176","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714683,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"09a8b46d448d59660f86dab81e457176"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd680b40e-2eb3-46f0-a0a4-c0e5f2da9600","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.451219882Z"}]},"request_id":"6b1376eb-f985-4f9a-9dea-5f15e562a56b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.7278554} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"09a8b46d448d59660f86dab81e457176"},"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:47510","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.43023,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56382","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.269143,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56386","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56382","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.169048,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/894b9228-d854-4e0c-86f0-7caaad712f9d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/894b9228-d854-4e0c-86f0-7caaad712f9d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"09a8b46d448d59660f86dab81e457176"},"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/846783ef-2d6a-4bb0-ac46-bc18c0065894","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/846783ef-2d6a-4bb0-ac46-bc18c0065894","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"09a8b46d448d59660f86dab81e457176"},"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/7cb687c9-7d47-4cab-94e0-9d270ef109df","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7cb687c9-7d47-4cab-94e0-9d270ef109df","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"09a8b46d448d59660f86dab81e457176"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:56386","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.587474,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dea839ad-e23c-4b99-b0c4-67d6e1610f89","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/dea839ad-e23c-4b99-b0c4-67d6e1610f89","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"09a8b46d448d59660f86dab81e457176"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56388","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.209667,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f03ed683-a927-4682-bbcf-29b168d0eba9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f03ed683-a927-4682-bbcf-29b168d0eba9","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"09a8b46d448d59660f86dab81e457176"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:56388","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.478283,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"09a8b46d448d59660f86dab81e457176"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"09a8b46d448d59660f86dab81e457176"} device-1 | {"level":"info","message":"GET /devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600? 200 55ms","method":"GET","requestID":"09a8b46d448d59660f86dab81e457176","responseTime":55,"status":200,"url":"/devices/d680b40e-2eb3-46f0-a0a4-c0e5f2da9600?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"de8835f91153d97c7f1427bc3bb6ea06","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.520947,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f03ed683-a927-4682-bbcf-29b168d0eba9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f03ed683-a927-4682-bbcf-29b168d0eba9","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de8835f91153d97c7f1427bc3bb6ea06"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff03ed683-a927-4682-bbcf-29b168d0eba9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.509669370Z"}]},"request_id":"ef181ca1-5407-49ef-9be7-93ba5e920510","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.7958572} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de8835f91153d97c7f1427bc3bb6ea06"},"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:47510","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.918692,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.238866,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56382","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56382","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.017376,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:56386","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e10b1fae-5ac5-44c6-893f-5d79f4f3c397","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e10b1fae-5ac5-44c6-893f-5d79f4f3c397","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"de8835f91153d97c7f1427bc3bb6ea06"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/aca7d634-091a-434b-9294-bfb61b3e6a02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/aca7d634-091a-434b-9294-bfb61b3e6a02","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"de8835f91153d97c7f1427bc3bb6ea06"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7646fc33-0cbb-45f1-ab13-12c15a3eb52f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7646fc33-0cbb-45f1-ab13-12c15a3eb52f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"de8835f91153d97c7f1427bc3bb6ea06"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:56386","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.347465,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e51b3fd9-4aa7-40d2-8a2f-d8750095d93b","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"de8835f91153d97c7f1427bc3bb6ea06"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f03ed683-a927-4682-bbcf-29b168d0eba9? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"de8835f91153d97c7f1427bc3bb6ea06"} device-1 | {"level":"info","message":"GET /devices/f03ed683-a927-4682-bbcf-29b168d0eba9? 200 44ms","method":"GET","requestID":"de8835f91153d97c7f1427bc3bb6ea06","responseTime":44,"status":200,"url":"/devices/f03ed683-a927-4682-bbcf-29b168d0eba9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e76cc632801a44c183fd80edc867ae78","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.404497,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"e76cc632801a44c183fd80edc867ae78"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"10cdefe4-7ebc-4178-9ca8-33cbfb3b489c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.8727288} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e76cc632801a44c183fd80edc867ae78"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5297c17e-04ec-4dee-9c6d-d2e29c8b4354","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.8806818} 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":"e76cc632801a44c183fd80edc867ae78"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"2ef4424c-45a9-41b7-b13e-e244029b0a85","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.8947625} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3796cac3-d035-4adc-ba9e-7cd58197c233","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.894933} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e76cc632801a44c183fd80edc867ae78"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.894739036Z"}]},"request_id":"2557f2a5-9211-4019-829a-55131fba7801","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.901595} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e76cc632801a44c183fd80edc867ae78"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.075","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e76cc632801a44c183fd80edc867ae78"} device-1 | {"level":"info","message":"POST /devices? 201 69ms","method":"POST","requestID":"e76cc632801a44c183fd80edc867ae78","responseTime":69,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a3625124f8846d5ffcab8714e100cd95","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.1796,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"a3625124f8846d5ffcab8714e100cd95"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b2cda75-733e-4d98-a769-e538c216a301","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ae3ded3c-3269-4d14-9d98-2a96582f5ca5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.9378345} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a3625124f8846d5ffcab8714e100cd95"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"afb4eceb-0264-4e66-b31a-f90d9dbeae75","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.9448447} 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":"a3625124f8846d5ffcab8714e100cd95"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b2cda75-733e-4d98-a769-e538c216a301","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"e10b75c7-5081-4394-9c13-b19cae932a99","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.9573073} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"04d7fed8-03b7-4c9c-b673-825f26057322","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.95833} 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":"a3625124f8846d5ffcab8714e100cd95"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b2cda75-733e-4d98-a769-e538c216a301","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b2cda75-733e-4d98-a769-e538c216a301","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.957272798Z"}]},"request_id":"1bd0a990-6d76-44e4-a42d-62c2af59b62b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.9632373} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a3625124f8846d5ffcab8714e100cd95"},"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":"21/May/2024:16:14:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a3625124f8846d5ffcab8714e100cd95"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"a3625124f8846d5ffcab8714e100cd95","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"82aebbcee8db699758422b58ee4c45a9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.458053,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308047,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA0N30.wEweJiJW3gSXFHXJ_ie1-WabYTKHAHmtFnGS6kszOhc"} 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":"82aebbcee8db699758422b58ee4c45a9"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"eb12503c-8cf8-4f11-a551-2507a77b513d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308047.9963593} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82aebbcee8db699758422b58ee4c45a9"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1d5858e-353e-4829-add1-666df41546ca","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308048.0042107} 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":"82aebbcee8db699758422b58ee4c45a9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"a5c525b0-6805-4020-9f39-2365d0f93c73","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308048.0155487} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ca3b066a-ce14-431d-9b76-30f7dc5a2250","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308048.0158293} 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":"82aebbcee8db699758422b58ee4c45a9"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:08.015527055Z"}]},"request_id":"11dc16e3-5463-4fba-be48-fa33461af566","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308048.0215719} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"82aebbcee8db699758422b58ee4c45a9"},"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":"21/May/2024:16:14:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"82aebbcee8db699758422b58ee4c45a9"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"82aebbcee8db699758422b58ee4c45a9","responseTime":50,"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":"e0db5802c34974990657b46c78c3b1d0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/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":"e0db5802c34974990657b46c78c3b1d0"} device-1 | {"level":"info","message":"OPTIONS /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/websocket 200 0ms","method":"OPTIONS","requestID":"e0db5802c34974990657b46c78c3b1d0","responseTime":0,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ae64df987e2909d066b2d08e4bb837bf","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f3a41855-3bef-4bd2-8354-868db1028e6d/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":"ae64df987e2909d066b2d08e4bb837bf"} device-1 | {"level":"info","message":"OPTIONS /devices/f3a41855-3bef-4bd2-8354-868db1028e6d/websocket 200 1ms","method":"OPTIONS","requestID":"ae64df987e2909d066b2d08e4bb837bf","responseTime":1,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8dc23cc2a30fcf8a438e3b8f83af727f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2a35d2c0efe4c1b89f672b3d76dad351","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.420777,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8dc23cc2a30fcf8a438e3b8f83af727f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.715764,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"2a35d2c0efe4c1b89f672b3d76dad351"},"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":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.057","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8dc23cc2a30fcf8a438e3b8f83af727f"} device-1 | {"level":"info","message":"POST /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/websocket 200 48ms","method":"POST","requestID":"8dc23cc2a30fcf8a438e3b8f83af727f","responseTime":48,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f3a41855-3bef-4bd2-8354-868db1028e6d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.063","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2a35d2c0efe4c1b89f672b3d76dad351"} device-1 | {"level":"info","message":"POST /devices/f3a41855-3bef-4bd2-8354-868db1028e6d/websocket 200 55ms","method":"POST","requestID":"2a35d2c0efe4c1b89f672b3d76dad351","responseTime":55,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"6577af13c153bed8c39c43c7c234d6cf","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.099099,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6577af13c153bed8c39c43c7c234d6cf"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:08.015527055Z"}]},"request_id":"a038516b-e5a3-4b6c-8455-fd697ae4b904","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.1160188} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6577af13c153bed8c39c43c7c234d6cf"},"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":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f3a41855-3bef-4bd2-8354-868db1028e6d? 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":"6577af13c153bed8c39c43c7c234d6cf"} device-1 | {"level":"info","message":"GET /devices/f3a41855-3bef-4bd2-8354-868db1028e6d? 200 15ms","method":"GET","requestID":"6577af13c153bed8c39c43c7c234d6cf","responseTime":16,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1ef3a2ea0e19b1bf4924334a9d230d8c","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:47510","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.489758,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"1ef3a2ea0e19b1bf4924334a9d230d8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"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:47510","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638959,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3b2cda75-733e-4d98-a769-e538c216a301","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3b2cda75-733e-4d98-a769-e538c216a301","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"2811fdb0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.929873,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"28124bd0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b2cda75-733e-4d98-a769-e538c216a301","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3b2cda75-733e-4d98-a769-e538c216a301","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.957272798Z"}]},"request_id":"c80abc03-e307-45e0-93bc-4c607bc9adcd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.1959083} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2811fdb0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:08.015527055Z"}]},"request_id":"c3c8695d-9f2c-4ca6-aad8-33a556d6b918","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.1967928} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"28124bd0-178d-11ef-9e06-b78ba83e54a6"},"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/f3a41855-3bef-4bd2-8354-868db1028e6d? 200 15ms","method":"GET","requestID":"28124bd0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.988278,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2811fdb0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3b2cda75-733e-4d98-a769-e538c216a301? 200 23ms","method":"GET","requestID":"2811fdb0-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/3b2cda75-733e-4d98-a769-e538c216a301?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"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:47510","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.572605,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"281f6b30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.43433,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"281fb950-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f50388f7-4016-49d8-9367-8009b7e5cef8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.2934968} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.517768,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"28202e80-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling 200 31ms","method":"POST","requestID":"28202e80-178d-11ef-9e06-b78ba83e54a6","responseTime":31,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.894739036Z"}]},"request_id":"fe690138-2cfa-4091-94d9-1e6267c9b1e5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.2997837} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:08.015527055Z"}]},"request_id":"5554ac14-f6bc-443e-b1cb-5e7491a53296","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.303883} authorization-1 | {"level":"info","message":"POST /relations/query 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"281f6b30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"level":"info","message":"POST /relations/query 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"281fb950-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb95bf94e-b06f-42bd-afb6-18d0856cd544#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb95bf94e-b06f-42bd-afb6-18d0856cd544","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"358eb161-4a51-46fd-980a-83a6c3d87fac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.313277} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c73c59dd-6e08-4276-b679-967288ff01b6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.3177435} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ef3a2ea0e19b1bf4924334a9d230d8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":27}} device-1 | {"level":"info","message":"GET /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7? 200 46ms","method":"GET","requestID":"281f6b30-178d-11ef-9e06-b78ba83e54a6","responseTime":46,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f3a41855-3bef-4bd2-8354-868db1028e6d? 200 45ms","method":"GET","requestID":"281fb950-178d-11ef-9e06-b78ba83e54a6","responseTime":45,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"99d6deb9-a096-42fe-85a1-4c441d51f6f8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.3210208} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.111512,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"282585b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ed618bf9-5537-4b71-b78a-b8bc77bd85a3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.3329887} device-1 | {"level":"info","message":"POST /devices/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling 200 18ms","method":"POST","requestID":"282585b0-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.210","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1ef3a2ea0e19b1bf4924334a9d230d8c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 203ms","method":"POST","requestID":"1ef3a2ea0e19b1bf4924334a9d230d8c","responseTime":203,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.864442,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","rebac_allow":false,"scope_allow":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":"28275a70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling 200 12ms","method":"POST","requestID":"28275a70-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"28d55d4f1d6d4ebf8596fef3081adb84","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:47510","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.694548,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"28d55d4f1d6d4ebf8596fef3081adb84"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bb12ee8e-b094-4d04-9087-17cddb6661cb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.346425} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.862666,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","rebac_allow":false,"scope_allow":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":"2829a460-178d-11ef-9e06-b78ba83e54a6"},"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/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling 200 9ms","method":"POST","requestID":"2829a460-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:07.894739036Z"}]},"request_id":"42e7a28c-722a-42fb-b5bd-a4c8cb357dd5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.351073} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"28d55d4f1d6d4ebf8596fef3081adb84"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"ff713340-92e5-4541-b7cc-91f716c36596"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"c6cf345b-fd48-40ca-a489-9b4ae54c56e2"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a1180772-e173-45e7-8c4b-48aef8a75197"}]},"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/0ee5e436-d263-4e20-a41b-8bccbfe581f7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d"}],"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":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7? HTTP/1.1","status": "200","body_bytes_sent":"283","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"28d55d4f1d6d4ebf8596fef3081adb84"} device-1 | {"level":"info","message":"GET /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7? 200 18ms","method":"GET","requestID":"28d55d4f1d6d4ebf8596fef3081adb84","responseTime":18,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.783182,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"282ba030-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d415a27c3c75e01eab17b79cf879fa22","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.72169,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"d415a27c3c75e01eab17b79cf879fa22"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:08.015527055Z"}]},"request_id":"00f60abe-f925-4110-9b07-952e02bba615","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.370733} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d415a27c3c75e01eab17b79cf879fa22"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"cf2c69c2-b58d-44a6-b527-761e31890569","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.3718433} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0bf7af36-660c-4c42-a08e-3e238d7f1399","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.3721366} 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":"282ba030-178d-11ef-9e06-b78ba83e54a6"},"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":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f3a41855-3bef-4bd2-8354-868db1028e6d? 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":"d415a27c3c75e01eab17b79cf879fa22"} device-1 | {"level":"info","message":"GET /devices/f3a41855-3bef-4bd2-8354-868db1028e6d? 200 12ms","method":"GET","requestID":"d415a27c3c75e01eab17b79cf879fa22","responseTime":12,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d?"} 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/d85aa1d4-1ebe-4f3a-8463-905834e82037'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 36ms","method":"POST","requestID":"282ba030-178d-11ef-9e06-b78ba83e54a6","responseTime":36,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"814c2b55-f0fc-40f8-85e5-997becd107b0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.4284947} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.457191,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","rebac_allow":false,"scope_allow":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":"28362780-178d-11ef-9e06-b78ba83e54a6"},"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/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling 200 10ms","method":"POST","requestID":"28362780-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fa30001c-41ef-4583-b1d8-668961630faf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.4423587} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.742716,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","rebac_allow":false,"scope_allow":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":"28382350-178d-11ef-9e06-b78ba83e54a6"},"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/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling 200 10ms","method":"POST","requestID":"28382350-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d85aa1d4-1ebe-4f3a-8463-905834e82037","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037"}}},"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":"47ab1f7db428fbc83246cea6ead399f3","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"47ab1f7db428fbc83246cea6ead399f3","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"47ab1f7db428fbc83246cea6ead399f3"} device-1 | {"data":{"peerconnection":"d85aa1d4-1ebe-4f3a-8463-905834e82037","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"d85aa1d4-1ebe-4f3a-8463-905834e82037","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/d85aa1d4-1ebe-4f3a-8463-905834e82037' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d85aa1d4-1ebe-4f3a-8463-905834e82037","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":"387605850f1e51bde3a51a8f511a1ae2","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd85aa1d4-1ebe-4f3a-8463-905834e82037","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dacb9f00-5c7a-4211-9450-0fca00c68756","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.5245938} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.46652,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037","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":"2844cd80-178d-11ef-9e06-b78ba83e54a6"},"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/d85aa1d4-1ebe-4f3a-8463-905834e82037 200 8ms","method":"GET","requestID":"2844cd80-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"387605850f1e51bde3a51a8f511a1ae2","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"387605850f1e51bde3a51a8f511a1ae2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7994c6e5-5591-4148-be64-944de35a6170","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.5484366} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.1945,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","rebac_allow":false,"scope_allow":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":"28487700-178d-11ef-9e06-b78ba83e54a6"},"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/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling 200 8ms","method":"POST","requestID":"28487700-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d35b439a-240f-4aea-918e-09c6edcfbd1d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.5588944} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.451059,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","rebac_allow":false,"scope_allow":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":"2849fda0-178d-11ef-9e06-b78ba83e54a6"},"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/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling 200 9ms","method":"POST","requestID":"2849fda0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"965ebf625839ed1967aab1c70e86f053","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.662298,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"965ebf625839ed1967aab1c70e86f053"},"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/b95bf94e-b06f-42bd-afb6-18d0856cd544"} experiment-1 | {"level":"info","message":"GET /experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544 200 10ms","method":"GET","requestID":"965ebf625839ed1967aab1c70e86f053","responseTime":10,"status":200,"url":"/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"965ebf625839ed1967aab1c70e86f053"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f1ca11333da5a18f42c830dc33a66a52","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.685311,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"f1ca11333da5a18f42c830dc33a66a52"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.957965,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"28503f30-178d-11ef-9e06-b78ba83e54a6"},"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/d85aa1d4-1ebe-4f3a-8463-905834e82037' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d85aa1d4-1ebe-4f3a-8463-905834e82037","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":"515392a6c6b07fad6e19caa4514e80b3","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd85aa1d4-1ebe-4f3a-8463-905834e82037': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd85aa1d4-1ebe-4f3a-8463-905834e82037","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"fe72803e-0f44-40c9-b2d6-6083dd733b86","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.6129858} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1a85417-7302-49e7-ab2e-90766fa51d5b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.6133099} 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/0ee5e436-d263-4e20-a41b-8bccbfe581f7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037"}}},"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":"569300f6bd25982a8aa3e99ae299190b","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/0ee5e436-d263-4e20-a41b-8bccbfe581f7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037"}}},"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":"28503f30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"data":{"peerconnection":"d85aa1d4-1ebe-4f3a-8463-905834e82037","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/d85aa1d4-1ebe-4f3a-8463-905834e82037 204 46ms","method":"DELETE","requestID":"28503f30-178d-11ef-9e06-b78ba83e54a6","responseTime":46,"status":204,"url":"/peerconnections/d85aa1d4-1ebe-4f3a-8463-905834e82037"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ee5e436-d263-4e20-a41b-8bccbfe581f7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"05514379-14d3-4c87-8938-79ac817fd38f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.6744103} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.297488,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7","object_type":"device","rebac_allow":false,"scope_allow":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":"285b14a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb95bf94e-b06f-42bd-afb6-18d0856cd544': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb95bf94e-b06f-42bd-afb6-18d0856cd544","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"156904b3-d21f-443d-96d7-aece1e11006c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.681154} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d0d2888-72ea-461e-ad8d-49c7a7fd8379","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.6816366} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling 200 16ms","method":"POST","requestID":"285b14a0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/0ee5e436-d263-4e20-a41b-8bccbfe581f7/signaling"} 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":"f1ca11333da5a18f42c830dc33a66a52"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff3a41855-3bef-4bd2-8354-868db1028e6d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"36b5cd12-442d-4dff-953a-a8454f42918f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.6932924} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.156692,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d","object_type":"device","rebac_allow":false,"scope_allow":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":"285e48f0-178d-11ef-9e06-b78ba83e54a6"},"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/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling 200 13ms","method":"POST","requestID":"285e48f0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/f3a41855-3bef-4bd2-8354-868db1028e6d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.172","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f1ca11333da5a18f42c830dc33a66a52"} experiment-1 | {"level":"info","message":"DELETE /experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544 204 169ms","method":"DELETE","requestID":"f1ca11333da5a18f42c830dc33a66a52","responseTime":169,"status":204,"url":"/experiments/b95bf94e-b06f-42bd-afb6-18d0856cd544"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"515392a6c6b07fad6e19caa4514e80b3","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"515392a6c6b07fad6e19caa4514e80b3"} gateway-1 | {"time_local":"21/May/2024:16:14: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.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"569300f6bd25982a8aa3e99ae299190b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"569300f6bd25982a8aa3e99ae299190b","responseTime":145,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e7779c85b34f8b3c6fd3e2f4351717f4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2647","request_time":"0.706","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c5135ab96e5fc07ebb3574dd5bc88768"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2647","request_time":"0.694","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"282da1c1c7d597d63caca227fe746946"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.890951,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"e7779c85b34f8b3c6fd3e2f4351717f4"},"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/0ee5e436-d263-4e20-a41b-8bccbfe581f7' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f3a41855-3bef-4bd2-8354-868db1028e6d' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c402a733-de94-4b3a-86c4-f6b8d99825fc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.7864158} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7779c85b34f8b3c6fd3e2f4351717f4"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eff978c1-535d-478b-9f95-974c0de5ef5e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.7916663} 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":"e7779c85b34f8b3c6fd3e2f4351717f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"7b339dff-a085-4383-b0f7-b7041bb85396","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.8022869} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"644776c3-c25e-458e-ba54-588a6272cef1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.8026888} 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":"e7779c85b34f8b3c6fd3e2f4351717f4"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.802257002Z"}]},"request_id":"55c55822-af8f-4cc8-99a3-ec782bae4649","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.8070679} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7779c85b34f8b3c6fd3e2f4351717f4"},"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 47ms","method":"POST","requestID":"e7779c85b34f8b3c6fd3e2f4351717f4","responseTime":47,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:14:10 +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":"e7779c85b34f8b3c6fd3e2f4351717f4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bcd602efa40d5815231e11af59aee403","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.870157,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308050,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MH0.4oK9HpsqJCxjWxFIFXBuAq7DM-3tiHEcYoFTf2a6YLs"} 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":"bcd602efa40d5815231e11af59aee403"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d6e69cea-1d1e-4acc-b17d-4322b2257782","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.8313735} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bcd602efa40d5815231e11af59aee403"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8bd7ff5a-ef0e-42e3-b477-bf4d71ddc13b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.8357544} 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":"bcd602efa40d5815231e11af59aee403"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"764bd0fd-d82c-48bf-9ae3-ac20c20fc2b1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.8436327} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"632ebd3a-4f04-46b8-a872-e63ed0dab30d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.8438904} 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":"bcd602efa40d5815231e11af59aee403"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.843617385Z"}]},"request_id":"83adbeb3-213d-4d2b-a6e3-1cc95bd4c217","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308050.8478456} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bcd602efa40d5815231e11af59aee403"},"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":"21/May/2024:16:14: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.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bcd602efa40d5815231e11af59aee403"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"bcd602efa40d5815231e11af59aee403","responseTime":35,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MX0.yKFUpB6t3ABdG7TSekLf6fiTfmW6ZLCR8itBp-rBZjo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4a1262c0a3b7879acf2a2cda413c70f1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:11Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.154026,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308051,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MX0.yKFUpB6t3ABdG7TSekLf6fiTfmW6ZLCR8itBp-rBZjo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a1262c0a3b7879acf2a2cda413c70f1"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.802257002Z"}]},"request_id":"0873ab38-cada-42ac-86d0-b79f8e7840be","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308051.336766} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a1262c0a3b7879acf2a2cda413c70f1"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eed122f6-c0d5-4cda-a6ea-e3ece87eb680","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308051.344849} 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":"4a1262c0a3b7879acf2a2cda413c70f1"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.802257002Z"}]},"request_id":"a311d908-243d-4c10-9756-e94ca76c69a4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308051.3679562} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a1262c0a3b7879acf2a2cda413c70f1"},"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":"21/May/2024:16:14:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509 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":"4a1262c0a3b7879acf2a2cda413c70f1"} device-1 | {"level":"info","message":"PATCH /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509 200 49ms","method":"PATCH","requestID":"4a1262c0a3b7879acf2a2cda413c70f1","responseTime":49,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MX0.yKFUpB6t3ABdG7TSekLf6fiTfmW6ZLCR8itBp-rBZjo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0b0e8add835b4258ca23cab4739e7777","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:11Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.229856,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308051,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1MX0.yKFUpB6t3ABdG7TSekLf6fiTfmW6ZLCR8itBp-rBZjo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0b0e8add835b4258ca23cab4739e7777"},"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":"21/May/2024:16:14:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/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":"0b0e8add835b4258ca23cab4739e7777"} device-1 | {"level":"info","message":"POST /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/websocket 200 24ms","method":"POST","requestID":"0b0e8add835b4258ca23cab4739e7777","responseTime":24,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509' 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":"0bd6b565dd96085a8885de643110291e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/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":"0bd6b565dd96085a8885de643110291e"} device-1 | {"level":"info","message":"OPTIONS /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/websocket 200 1ms","method":"OPTIONS","requestID":"0bd6b565dd96085a8885de643110291e","responseTime":1,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"306b7cdc98ab68f4ccfaa88dd1fb7283","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.169328,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"306b7cdc98ab68f4ccfaa88dd1fb7283"},"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":"21/May/2024:16:14:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/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":"306b7cdc98ab68f4ccfaa88dd1fb7283"} device-1 | {"level":"info","message":"POST /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/websocket 200 41ms","method":"POST","requestID":"306b7cdc98ab68f4ccfaa88dd1fb7283","responseTime":41,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"995b0ea12d63f7cdd7d5f4491ecd77f9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.28069,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"995b0ea12d63f7cdd7d5f4491ecd77f9"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.802257002Z"}]},"request_id":"1c92bf69-ad28-4be3-8ea4-e6eb6448d5ef","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308052.921699} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"995b0ea12d63f7cdd7d5f4491ecd77f9"},"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":"21/May/2024:16:14:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509? 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":"995b0ea12d63f7cdd7d5f4491ecd77f9"} device-1 | {"level":"info","message":"GET /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509? 200 19ms","method":"GET","requestID":"995b0ea12d63f7cdd7d5f4491ecd77f9","responseTime":19,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ffa16e800a2295d963311e7f4a4de00e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.236154,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffa16e800a2295d963311e7f4a4de00e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.843617385Z"}]},"request_id":"247b000d-b7e4-4c07-aef2-936bd37fd211","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308052.949807} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ffa16e800a2295d963311e7f4a4de00e"},"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":"21/May/2024:16:14:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725? 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":"ffa16e800a2295d963311e7f4a4de00e"} device-1 | {"level":"info","message":"GET /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725? 200 19ms","method":"GET","requestID":"ffa16e800a2295d963311e7f4a4de00e","responseTime":19,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a90c2d80d3558464f6d3358399b717e9","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:47510","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.315102,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} 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":"a90c2d80d3558464f6d3358399b717e9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"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:47510","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.182283,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} 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":"29c700b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.076493,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} 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":"29c74ed0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.802257002Z"}]},"request_id":"31cfce53-59d4-4984-84bf-6ef1b5d78e1a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.0634546} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"29c700b0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.843617385Z"}]},"request_id":"276b260b-e483-4aaa-9488-de7fcea723c2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.0642068} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"29c74ed0-178d-11ef-9e06-b78ba83e54a6"},"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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509? 200 17ms","method":"GET","requestID":"29c700b0-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725? 200 16ms","method":"GET","requestID":"29c74ed0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"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/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":3.497552,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.020715,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} 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":"29d383d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} 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":"29d3f900-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"client_addr":"127.0.0.1:45772","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.802257002Z"}]},"request_id":"14ae8567-4935-4b87-9d20-15b27e2a7124","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.1548088} 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":"29d383d0-178d-11ef-9e06-b78ba83e54a6"},"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:45772","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.981702,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.843617385Z"}]},"request_id":"2dd6e267-a66c-4806-8ab7-14ff3dafdafa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.1582787} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"605dba48-6240-4bee-995c-41e597b3c7bd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.1588056} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509? 200 31ms","method":"GET","requestID":"29d383d0-178d-11ef-9e06-b78ba83e54a6","responseTime":31,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509?"} 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":"29d3f900-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","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 26ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"29d44720-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":26}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7d245828-0643-4a75-8005-0c1504fb7b0c#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7d245828-0643-4a75-8005-0c1504fb7b0c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"aa67788f-085f-4dc4-a056-855f9274ed68","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.1644976} device-1 | {"level":"info","message":"GET /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725? 200 33ms","method":"GET","requestID":"29d3f900-178d-11ef-9e06-b78ba83e54a6","responseTime":33,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d3a6bd4-aab1-4ede-a8b2-8907a12239c1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.164896} 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":"a90c2d80d3558464f6d3358399b717e9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling 200 39ms","method":"POST","requestID":"29d44720-178d-11ef-9e06-b78ba83e54a6","responseTime":39,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e85fdb97-dd9d-4956-93c6-188febb05284","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.1813383} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.572982,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","rebac_allow":false,"scope_allow":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":"29d99e50-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"21/May/2024:16:14:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.228","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a90c2d80d3558464f6d3358399b717e9"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} experiment-1 | {"level":"info","message":"POST /experiments? 201 220ms","method":"POST","requestID":"a90c2d80d3558464f6d3358399b717e9","responseTime":220,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling 200 17ms","method":"POST","requestID":"29d99e50-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"793b55c3-3801-4525-9329-3d2f39ac864b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.191113} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.040689,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","rebac_allow":false,"scope_allow":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":"29dafde0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1M30.nZ8SL6rmgUkB7BDVkvR0r0g-gwg-iDtrPu1YtX4PE8o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2f400199cbd787bf23b322e23115be13","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2580a9a8-7611-4bad-8656-f9b9ee6f99cf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.2018237} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.94726,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","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/0d27c427-ae05-40a6-bc8e-b632f93f8725/signaling 200 25ms","method":"POST","requestID":"29dafde0-178d-11ef-9e06-b78ba83e54a6","responseTime":25,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/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":"29dcd2a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:58516","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.12044,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308053,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1M30.nZ8SL6rmgUkB7BDVkvR0r0g-gwg-iDtrPu1YtX4PE8o"} 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":"2f400199cbd787bf23b322e23115be13"},"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/0d27c427-ae05-40a6-bc8e-b632f93f8725/signaling 200 23ms","method":"POST","requestID":"29dcd2a0-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.802257002Z"}]},"request_id":"aa7a8a0d-998e-4989-927f-2657747941db","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.2167654} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2f400199cbd787bf23b322e23115be13"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"edf3f00a-dfb7-4f66-b0c1-51ecf7673198"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"6b7e2742-4a60-4443-83d1-9868d3b2a527"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b815d672-eaa3-4713-aa1a-8c37561d4f4a"}]},"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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725"}],"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":"21/May/2024:16:14:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2f400199cbd787bf23b322e23115be13"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} device-1 | {"level":"info","message":"GET /devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509? 200 23ms","method":"GET","requestID":"2f400199cbd787bf23b322e23115be13","responseTime":23,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.068958,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308052,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1Mn0.fG0GQcG8BbkeHivjcsvqnKDoQnPSfOnzRPGQAPRn5TU"} 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":"29e0ca40-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1M30.nZ8SL6rmgUkB7BDVkvR0r0g-gwg-iDtrPu1YtX4PE8o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e18866f5d46f2681ff93d654d996fedb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.756789,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308053,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1M30.nZ8SL6rmgUkB7BDVkvR0r0g-gwg-iDtrPu1YtX4PE8o"} 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":"e18866f5d46f2681ff93d654d996fedb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"3f3b8967-ff67-4dba-b723-49193edf5ce2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.240058} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"61f10348-e7e0-4f38-a410-8747aeddb042","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.2404423} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:10.843617385Z"}]},"request_id":"4f383ee0-86ac-4e9c-8b5c-8269ef608f9c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.2416277} 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":"29e0ca40-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e18866f5d46f2681ff93d654d996fedb"},"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":"21/May/2024:16:14:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725? 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":"e18866f5d46f2681ff93d654d996fedb"} device-1 | {"level":"info","message":"GET /devices/0d27c427-ae05-40a6-bc8e-b632f93f8725? 200 18ms","method":"GET","requestID":"e18866f5d46f2681ff93d654d996fedb","responseTime":18,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725?"} 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/617cb213-5160-468a-ab52-d7ffe6b6637d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d'"} 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":"29e0ca40-178d-11ef-9e06-b78ba83e54a6","responseTime":44,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725'"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"15551ce2-c0d7-40c3-a992-cccd8d9f6de5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.3073404} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.121605,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","rebac_allow":false,"scope_allow":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":"29ecd830-178d-11ef-9e06-b78ba83e54a6"},"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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling 200 12ms","method":"POST","requestID":"29ecd830-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"156e369a-ce5d-478c-a37c-6777353f5b15","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308053.317174} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.176368,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","rebac_allow":false,"scope_allow":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":"29eefb10-178d-11ef-9e06-b78ba83e54a6"},"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/0d27c427-ae05-40a6-bc8e-b632f93f8725/signaling 200 8ms","method":"POST","requestID":"29eefb10-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/signaling"} device-1 | {"data":{"peerconnection":"617cb213-5160-468a-ab52-d7ffe6b6637d","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/617cb213-5160-468a-ab52-d7ffe6b6637d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"617cb213-5160-468a-ab52-d7ffe6b6637d","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":"f4adabf57b5366a198a2356a5c72160f","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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 11ms","method":"POST","requestID":"f4adabf57b5366a198a2356a5c72160f","responseTime":11,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch","requestID":"f4adabf57b5366a198a2356a5c72160f"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725'"} device-1 | {"data":{"peerconnection":"617cb213-5160-468a-ab52-d7ffe6b6637d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"617cb213-5160-468a-ab52-d7ffe6b6637d","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/617cb213-5160-468a-ab52-d7ffe6b6637d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"617cb213-5160-468a-ab52-d7ffe6b6637d","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":"b79a9f637c29c33e711443a895011590","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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F617cb213-5160-468a-ab52-d7ffe6b6637d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b0044332-af8e-4e58-a042-3b50aadbf2a1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.382893} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.753896,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d","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":"2b29ec10-178d-11ef-9e06-b78ba83e54a6"},"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/617cb213-5160-468a-ab52-d7ffe6b6637d 200 11ms","method":"GET","requestID":"2b29ec10-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 41ms","method":"POST","requestID":"b79a9f637c29c33e711443a895011590","responseTime":41,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch","requestID":"b79a9f637c29c33e711443a895011590"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"980b2660-a716-47f3-8228-400f4d483908","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.4174955} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.764803,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","rebac_allow":false,"scope_allow":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":"2b2f1c30-178d-11ef-9e06-b78ba83e54a6"},"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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling 200 13ms","method":"POST","requestID":"2b2f1c30-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2d4f0ea1-dd41-48c0-94f6-7bc9a2e1cadc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.4340532} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.251414,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","rebac_allow":false,"scope_allow":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":"2b318d30-178d-11ef-9e06-b78ba83e54a6"},"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/0d27c427-ae05-40a6-bc8e-b632f93f8725/signaling 200 12ms","method":"POST","requestID":"2b318d30-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"64d0bb0260eee66f406ee54176827760","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.262906,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308055,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I"} 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":"64d0bb0260eee66f406ee54176827760"},"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/7d245828-0643-4a75-8005-0c1504fb7b0c"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7d245828-0643-4a75-8005-0c1504fb7b0c 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":"64d0bb0260eee66f406ee54176827760"} experiment-1 | {"level":"info","message":"GET /experiments/7d245828-0643-4a75-8005-0c1504fb7b0c 200 21ms","method":"GET","requestID":"64d0bb0260eee66f406ee54176827760","responseTime":21,"status":200,"url":"/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"34e62d92b3bb23f555cb6ceed544eb4f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.224988,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308055,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I"} 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":"34e62d92b3bb23f555cb6ceed544eb4f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.252679,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308055,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I"} 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":"2b4b56c0-178d-11ef-9e06-b78ba83e54a6"},"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/617cb213-5160-468a-ab52-d7ffe6b6637d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"617cb213-5160-468a-ab52-d7ffe6b6637d","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":"d42806d5b067de05bb40954a7c035883","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F617cb213-5160-468a-ab52-d7ffe6b6637d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F617cb213-5160-468a-ab52-d7ffe6b6637d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"fa7b58f4-7503-4e57-a83c-99ed98175692","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.6243002} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe600833-baaa-4532-8892-8de03c9ce7a6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.6248753} 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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"80e516d56087243205dca55e91546f7e","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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b4b56c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"data":{"peerconnection":"617cb213-5160-468a-ab52-d7ffe6b6637d","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/617cb213-5160-468a-ab52-d7ffe6b6637d 204 58ms","method":"DELETE","requestID":"2b4b56c0-178d-11ef-9e06-b78ba83e54a6","responseTime":58,"status":204,"url":"/peerconnections/617cb213-5160-468a-ab52-d7ffe6b6637d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd3c009d3-0909-4b25-a2f5-4aa52f2b8509","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c2b10a50-515d-466c-b669-cd65389a8403","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.6884012} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.804362,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509","object_type":"device","rebac_allow":false,"scope_allow":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":"2b584f10-178d-11ef-9e06-b78ba83e54a6"},"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/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling 200 15ms","method":"POST","requestID":"2b584f10-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7d245828-0643-4a75-8005-0c1504fb7b0c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7d245828-0643-4a75-8005-0c1504fb7b0c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"747e8475-db4e-4653-b140-a10311e078e2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.6996095} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f2c0311-2cbf-4e80-8b6c-6d435905a693","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.7000942} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34e62d92b3bb23f555cb6ceed544eb4f"},"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:47510","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d27c427-ae05-40a6-bc8e-b632f93f8725","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"091478ea-6357-43d2-8343-548755f6af12","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.7091281} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.630791,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725","object_type":"device","rebac_allow":false,"scope_allow":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":"2b5b3540-178d-11ef-9e06-b78ba83e54a6"},"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/0d27c427-ae05-40a6-bc8e-b632f93f8725/signaling 200 18ms","method":"POST","requestID":"2b5b3540-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7d245828-0643-4a75-8005-0c1504fb7b0c 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":"34e62d92b3bb23f555cb6ceed544eb4f"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2989","request_time":"4.361","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"25c01916874f2a96d92cd97bd4ad8704"} experiment-1 | {"level":"info","message":"DELETE /experiments/7d245828-0643-4a75-8005-0c1504fb7b0c 204 187ms","method":"DELETE","requestID":"34e62d92b3bb23f555cb6ceed544eb4f","responseTime":187,"status":204,"url":"/experiments/7d245828-0643-4a75-8005-0c1504fb7b0c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"d42806d5b067de05bb40954a7c035883","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"d42806d5b067de05bb40954a7c035883"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"80e516d56087243205dca55e91546f7e","responseTime":144,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"80e516d56087243205dca55e91546f7e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"8a0a97d2be7e639e7c24839fc759bd3e","responseTime":9,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2501","request_time":"2.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":"68ebcef936a09bc425571472fde5c42e"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d3c009d3-0909-4b25-a2f5-4aa52f2b8509' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.923584,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308055,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I"} 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":"8a0a97d2be7e639e7c24839fc759bd3e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0d27c427-ae05-40a6-bc8e-b632f93f8725' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f98fa1b0-ec86-4b75-907d-a48c8e7f1e3f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8008893} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8a0a97d2be7e639e7c24839fc759bd3e"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"72a397b8-8ba0-4c3b-a0e2-5c38cb16afc8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8065698} 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":"8a0a97d2be7e639e7c24839fc759bd3e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"14110963-8d3a-4116-a064-db8ae4c57a74","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8176026} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d3c5dfea-79a6-49e5-8aa2-4ed5f012b9d0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8178492} 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":"8a0a97d2be7e639e7c24839fc759bd3e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.817586437Z"}]},"request_id":"c2a2b682-a931-4c0d-8bfe-c0a062fcdab3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8248863} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8a0a97d2be7e639e7c24839fc759bd3e"},"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":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a0a97d2be7e639e7c24839fc759bd3e"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"8a0a97d2be7e639e7c24839fc759bd3e","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"577a8f5cdcc2c9e1fdb8260adf380561","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.313928,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308055,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1NX0.Ue0QoVRXKg5YN2eUb0jV6CyVdgfAoHnuPTfrjc5Ut-I"} 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":"577a8f5cdcc2c9e1fdb8260adf380561"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"97622c00-4312-4853-bd93-771f705265f1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8478315} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"577a8f5cdcc2c9e1fdb8260adf380561"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3be77c94-77c6-4b7e-a92c-88820c8daca1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8528917} 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":"577a8f5cdcc2c9e1fdb8260adf380561"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"649186f0-fb7b-4876-902a-3601de6a4324","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.861689} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c7473a02-5e48-4f32-8018-b07d45ce4cf1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8618345} 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":"577a8f5cdcc2c9e1fdb8260adf380561"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.861667711Z"}]},"request_id":"d5882961-2031-4ceb-b4ff-fcc97b11384c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308055.8660305} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"577a8f5cdcc2c9e1fdb8260adf380561"},"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":"577a8f5cdcc2c9e1fdb8260adf380561","responseTime":36,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"577a8f5cdcc2c9e1fdb8260adf380561"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e1cf56c66eb92009b15d812e87a838ae","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3897180e-19f8-422c-b267-6d9f788eab1d/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":"e1cf56c66eb92009b15d812e87a838ae"} device-1 | {"level":"info","message":"OPTIONS /devices/3897180e-19f8-422c-b267-6d9f788eab1d/websocket 200 1ms","method":"OPTIONS","requestID":"e1cf56c66eb92009b15d812e87a838ae","responseTime":1,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"19c47caf454e422a96bae1254aa73874","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"16ca119ed36639756b1ddcbff63c6de1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/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":"16ca119ed36639756b1ddcbff63c6de1"} device-1 | {"level":"info","message":"OPTIONS /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/websocket 200 1ms","method":"OPTIONS","requestID":"16ca119ed36639756b1ddcbff63c6de1","responseTime":1,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/websocket"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.051086,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"19c47caf454e422a96bae1254aa73874"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a54202810210386afd8d6356ad7797c8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.779622,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a54202810210386afd8d6356ad7797c8"},"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":"21/May/2024:16:14:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3897180e-19f8-422c-b267-6d9f788eab1d/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":"19c47caf454e422a96bae1254aa73874"} device-1 | {"level":"info","message":"POST /devices/3897180e-19f8-422c-b267-6d9f788eab1d/websocket 200 42ms","method":"POST","requestID":"19c47caf454e422a96bae1254aa73874","responseTime":42,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/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":"a54202810210386afd8d6356ad7797c8"} device-1 | {"level":"info","message":"POST /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/websocket 200 44ms","method":"POST","requestID":"a54202810210386afd8d6356ad7797c8","responseTime":44,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b32c18382f852fdf38c8ea0205428346","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.621431,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b32c18382f852fdf38c8ea0205428346"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.817586437Z"}]},"request_id":"bca6cb05-9392-43cb-bf29-cf4d25c890ca","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308057.8881845} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b32c18382f852fdf38c8ea0205428346"},"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":"21/May/2024:16:14:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3897180e-19f8-422c-b267-6d9f788eab1d? 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":"b32c18382f852fdf38c8ea0205428346"} device-1 | {"level":"info","message":"GET /devices/3897180e-19f8-422c-b267-6d9f788eab1d? 200 19ms","method":"GET","requestID":"b32c18382f852fdf38c8ea0205428346","responseTime":19,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"16a03fa0b6bac4e42f53f0ba7a48b235","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.106878,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"16a03fa0b6bac4e42f53f0ba7a48b235"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.861667711Z"}]},"request_id":"0dd7077a-62c1-4060-b0da-025a1cd9f077","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308057.9132595} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"16a03fa0b6bac4e42f53f0ba7a48b235"},"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":"21/May/2024:16:14:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386? 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":"16a03fa0b6bac4e42f53f0ba7a48b235"} device-1 | {"level":"info","message":"GET /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386? 200 19ms","method":"GET","requestID":"16a03fa0b6bac4e42f53f0ba7a48b235","responseTime":19,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dfcfed7480d76602237eeeaf07095421","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:47510","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.664283,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} 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":"dfcfed7480d76602237eeeaf07095421"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"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:47510","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.298175,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} 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":"2cb742d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.415917,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} 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":"2cb790f0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.817586437Z"}]},"request_id":"895d82b0-60be-4694-bd62-adcae9feb20e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308057.9959457} 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":"2cb742d0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.861667711Z"}]},"request_id":"a8ecd998-9b7c-449c-b3b8-fee21e38ea6e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.0024579} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2cb790f0-178d-11ef-9e06-b78ba83e54a6"},"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/3897180e-19f8-422c-b267-6d9f788eab1d? 200 26ms","method":"GET","requestID":"2cb742d0-178d-11ef-9e06-b78ba83e54a6","responseTime":26,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386? 200 28ms","method":"GET","requestID":"2cb790f0-178d-11ef-9e06-b78ba83e54a6","responseTime":28,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"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:47510","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.723162,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2cc4fe70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.032984,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2cc573a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.716945,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c129e868-48dd-4ad3-afb1-e3f6cc3257dc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.0863066} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","rebac_allow":false,"scope_allow":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":"2cc5c1c0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.861667711Z"}]},"request_id":"d6a0ba8c-ebe6-4999-ba82-27e96eacef14","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.0882506} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2cc573a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"POST /devices/3897180e-19f8-422c-b267-6d9f788eab1d/signaling 200 20ms","method":"POST","requestID":"2cc5c1c0-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.817586437Z"}]},"request_id":"a312d929-2f3e-4183-ab07-8a777f78e20f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.0943155} 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":"2cc4fe70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbdc6c5f6-9c0f-48bf-9116-c4cb724db885#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbdc6c5f6-9c0f-48bf-9116-c4cb724db885","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"ba39b964-7a9a-4fc9-9257-1aed10e5632b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.1015744} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b8a44d9-073f-4cd9-a978-aaefe987f6bc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.1017542} 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":"dfcfed7480d76602237eeeaf07095421"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} device-1 | {"level":"info","message":"GET /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386? 200 32ms","method":"GET","requestID":"2cc573a0-178d-11ef-9e06-b78ba83e54a6","responseTime":32,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3897180e-19f8-422c-b267-6d9f788eab1d? 200 35ms","method":"GET","requestID":"2cc4fe70-178d-11ef-9e06-b78ba83e54a6","responseTime":35,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d89685e-7780-4bde-ac9f-68b12fd49c5e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.107898} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.432436,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","rebac_allow":false,"scope_allow":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":"2cc99250-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 192ms","method":"POST","requestID":"dfcfed7480d76602237eeeaf07095421","responseTime":192,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"777","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dfcfed7480d76602237eeeaf07095421"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling 200 17ms","method":"POST","requestID":"2cc99250-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk","level":"info","message":"auth send jwt"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d952374-03e1-4189-82ee-3a92e8430bb8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.1213677} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1fe305da6ebcbbb9247536a100f7813e","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.552433,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","rebac_allow":false,"scope_allow":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":"2ccbb530-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.172063,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} device-1 | {"level":"info","message":"POST /devices/3897180e-19f8-422c-b267-6d9f788eab1d/signaling 200 12ms","method":"POST","requestID":"2ccbb530-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308058,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1fe305da6ebcbbb9247536a100f7813e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.817586437Z"}]},"request_id":"7b1dee14-52e3-4a0b-a002-0197631f1537","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.1322052} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1fe305da6ebcbbb9247536a100f7813e"},"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:47510","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b058a885-3fb5-4581-aab9-d848bad09458","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.1361942} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.337041,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3897180e-19f8-422c-b267-6d9f788eab1d? 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":"1fe305da6ebcbbb9247536a100f7813e"} device-1 | {"level":"info","message":"GET /devices/3897180e-19f8-422c-b267-6d9f788eab1d? 200 16ms","method":"GET","requestID":"1fe305da6ebcbbb9247536a100f7813e","responseTime":16,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d?"} 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":"2ccdff20-178d-11ef-9e06-b78ba83e54a6"},"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/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling 200 11ms","method":"POST","requestID":"2ccdff20-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"1393764c-709f-406f-91d1-146310ee2624"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"2d0d480f-af6f-4884-a6aa-01235ee041ce"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"048a9698-8971-4d0b-9145-a5a43f1ebbcc"}]},"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/e6500a14-3bd1-4461-8ee7-e3bfdd962386"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6717bc9add70e12f145b33c10a8328b2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691512,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308058,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6717bc9add70e12f145b33c10a8328b2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.876422,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308057,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1N30.UM37K42OVhTn27gUJpwbdehUQKG19tQpyBPvP_GuatI"} 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":"2cd04910-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:15.861667711Z"}]},"request_id":"82c60064-697d-4da2-a5db-5c3b54ce794f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.1527257} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6717bc9add70e12f145b33c10a8328b2"},"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":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386? 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":"6717bc9add70e12f145b33c10a8328b2"} device-1 | {"level":"info","message":"GET /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386? 200 15ms","method":"GET","requestID":"6717bc9add70e12f145b33c10a8328b2","responseTime":15,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"75045b8e-55a1-433e-aead-9c6d266166ce","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.16072} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"29282f81-a9d3-4a78-a92b-cae4d70975c2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.1610222} 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":"2cd04910-178d-11ef-9e06-b78ba83e54a6"},"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/f03eefc1-cc5c-46c8-9129-f8dd6d42101f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 58ms","method":"POST","requestID":"2cd04910-178d-11ef-9e06-b78ba83e54a6","responseTime":58,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fca96e7c-8047-4cad-85da-16d0ec1a20b9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.2465303} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.602882,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","rebac_allow":false,"scope_allow":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":"2cdeef10-178d-11ef-9e06-b78ba83e54a6"},"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/3897180e-19f8-422c-b267-6d9f788eab1d/signaling 200 10ms","method":"POST","requestID":"2cdeef10-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aa255da2-49da-44d6-a904-750922c18138","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.2578106} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.565923,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","rebac_allow":false,"scope_allow":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":"2ce0c3d0-178d-11ef-9e06-b78ba83e54a6"},"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/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling 200 11ms","method":"POST","requestID":"2ce0c3d0-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f03eefc1-cc5c-46c8-9129-f8dd6d42101f","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c47ba11fe27e2fb75b8cfe5a16316b5f","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":"new","url":"http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"c47ba11fe27e2fb75b8cfe5a16316b5f","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"c47ba11fe27e2fb75b8cfe5a16316b5f"} device-1 | {"data":{"peerconnection":"f03eefc1-cc5c-46c8-9129-f8dd6d42101f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"f03eefc1-cc5c-46c8-9129-f8dd6d42101f","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/f03eefc1-cc5c-46c8-9129-f8dd6d42101f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f03eefc1-cc5c-46c8-9129-f8dd6d42101f","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":"811f688f9b90bae8715d0f97b7561a90","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/e6500a14-3bd1-4461-8ee7-e3bfdd962386"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff03eefc1-cc5c-46c8-9129-f8dd6d42101f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b82fb7c-d9a9-4894-a5d3-133e813b33ab","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.352551} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.57224,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f","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":"2cef1bb0-178d-11ef-9e06-b78ba83e54a6"},"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/f03eefc1-cc5c-46c8-9129-f8dd6d42101f 200 10ms","method":"GET","requestID":"2cef1bb0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 34ms","method":"POST","requestID":"811f688f9b90bae8715d0f97b7561a90","responseTime":34,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"811f688f9b90bae8715d0f97b7561a90"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2461db70-60e4-469d-926e-f42e7b43d3e9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.3814323} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.547588,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","rebac_allow":false,"scope_allow":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":"2cf38880-178d-11ef-9e06-b78ba83e54a6"},"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/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling 200 11ms","method":"POST","requestID":"2cf38880-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1ec76ab7-8eb2-411d-85ef-a626e4e970ba","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.3948445} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.479359,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","rebac_allow":false,"scope_allow":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":"2cf5ab60-178d-11ef-9e06-b78ba83e54a6"},"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/3897180e-19f8-422c-b267-6d9f788eab1d/signaling 200 10ms","method":"POST","requestID":"2cf5ab60-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"aeedd9cc928ce6db64ea539dc840f370","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.191782,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308058,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk"} 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":"aeedd9cc928ce6db64ea539dc840f370"},"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/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885 HTTP/1.1","status": "200","body_bytes_sent":"850","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aeedd9cc928ce6db64ea539dc840f370"} experiment-1 | {"level":"info","message":"GET /experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885 200 19ms","method":"GET","requestID":"aeedd9cc928ce6db64ea539dc840f370","responseTime":19,"status":200,"url":"/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"07cd10d2502af2ef1a6589f5bf427dac","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.110752,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308058,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk"} 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":"07cd10d2502af2ef1a6589f5bf427dac"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.317571,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308058,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk"} 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":"2d15dd90-178d-11ef-9e06-b78ba83e54a6"},"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/f03eefc1-cc5c-46c8-9129-f8dd6d42101f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f03eefc1-cc5c-46c8-9129-f8dd6d42101f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff03eefc1-cc5c-46c8-9129-f8dd6d42101f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff03eefc1-cc5c-46c8-9129-f8dd6d42101f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"36d987d1-8b7d-4314-b3f8-f2aede38f4a3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.6259332} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9499b7e7-29bc-42c3-9ef5-ec1570555071","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.6261666} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f590e8aa045ca8211b70ac804c2b10b1","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 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":"2d15dd90-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d415f7f43f0763d24ec965c37bd6971d","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/e6500a14-3bd1-4461-8ee7-e3bfdd962386"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"f03eefc1-cc5c-46c8-9129-f8dd6d42101f","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/f03eefc1-cc5c-46c8-9129-f8dd6d42101f 204 56ms","method":"DELETE","requestID":"2d15dd90-178d-11ef-9e06-b78ba83e54a6","responseTime":56,"status":204,"url":"/peerconnections/f03eefc1-cc5c-46c8-9129-f8dd6d42101f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6500a14-3bd1-4461-8ee7-e3bfdd962386","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2a8d8a3-b7db-4362-a6b1-60d18429b85a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.6962445} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbdc6c5f6-9c0f-48bf-9116-c4cb724db885': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbdc6c5f6-9c0f-48bf-9116-c4cb724db885","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"6176537d-5cb0-4a3e-ac8c-885fb4bea6bc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.6962395} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9474bc08-bafe-43fd-87e6-b1f3fedc9e84","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.6966343} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.065867,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386","object_type":"device","rebac_allow":false,"scope_allow":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":"2d22aed0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} 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":"07cd10d2502af2ef1a6589f5bf427dac"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling 200 21ms","method":"POST","requestID":"2d22aed0-178d-11ef-9e06-b78ba83e54a6","responseTime":21,"status":200,"url":"/devices/e6500a14-3bd1-4461-8ee7-e3bfdd962386/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3897180e-19f8-422c-b267-6d9f788eab1d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8c41c7d2-bc06-43c9-9442-92fee6ac501c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.7175858} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.858271,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d","object_type":"device","rebac_allow":false,"scope_allow":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":"2d267f60-178d-11ef-9e06-b78ba83e54a6"},"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/3897180e-19f8-422c-b267-6d9f788eab1d/signaling 200 16ms","method":"POST","requestID":"2d267f60-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/3897180e-19f8-422c-b267-6d9f788eab1d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.200","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"07cd10d2502af2ef1a6589f5bf427dac"} experiment-1 | {"level":"info","message":"DELETE /experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885 204 198ms","method":"DELETE","requestID":"07cd10d2502af2ef1a6589f5bf427dac","responseTime":198,"status":204,"url":"/experiments/bdc6c5f6-9c0f-48bf-9116-c4cb724db885"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 155ms","method":"POST","requestID":"f590e8aa045ca8211b70ac804c2b10b1","responseTime":155,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 154ms","method":"POST","requestID":"d415f7f43f0763d24ec965c37bd6971d","responseTime":154,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c259c9e31d6363115cf99e8052bc7360","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.165","http_referrer":"","http_user_agent":"node-fetch","requestID":"f590e8aa045ca8211b70ac804c2b10b1"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch","requestID":"d415f7f43f0763d24ec965c37bd6971d"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2631","request_time":"0.937","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cf1b1fe926299aca8146186e73517b8e"} gateway-1 | {"time_local":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2631","request_time":"0.949","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4914c7f7246450d17b33696d17328496"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.00409,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308058,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk"} 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":"c259c9e31d6363115cf99e8052bc7360"},"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/e6500a14-3bd1-4461-8ee7-e3bfdd962386' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3897180e-19f8-422c-b267-6d9f788eab1d' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"07d93fa7-7036-49dd-820b-3fdc7d930edc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.807231} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c259c9e31d6363115cf99e8052bc7360"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"58892ecb-4935-49f7-be8b-ea7f5e3e12cd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.811668} 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":"c259c9e31d6363115cf99e8052bc7360"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"dd57f760-26e1-42a7-b3ab-4756f6c9c5c9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.8254669} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5f2cf9a-3107-42a7-a8c9-99a86989b78f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.825664} 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":"c259c9e31d6363115cf99e8052bc7360"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.825448688Z"}]},"request_id":"6b039e1b-17cb-4bfa-a1d0-35c695e7c85e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.8301153} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c259c9e31d6363115cf99e8052bc7360"},"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":"21/May/2024:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c259c9e31d6363115cf99e8052bc7360"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"c259c9e31d6363115cf99e8052bc7360","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e010e3231b4e40148f85e2feca87154a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.690123,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308058,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OH0.qaQJR-_v-yAuo88r2l8JGYopw1gLn6LR6X5WU9vu1Xk"} 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":"e010e3231b4e40148f85e2feca87154a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dde138de-a3c6-4c04-90a6-f748dccd9ac2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.854972} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e010e3231b4e40148f85e2feca87154a"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d84f0dab-a39c-40a4-a611-0efa146ebf94","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.860325} 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":"e010e3231b4e40148f85e2feca87154a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"7a76b90c-a10f-4aa7-bbc8-89c631686ce6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.870185} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1becac6a-2a9d-4f3f-80b7-edc0970ca644","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.8704135} 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":"e010e3231b4e40148f85e2feca87154a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.870163721Z"}]},"request_id":"a47ba2f8-d4a7-4240-bb7e-331217b7a10e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308058.874798} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e010e3231b4e40148f85e2feca87154a"},"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":"21/May/2024:16:14:18 +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":"e010e3231b4e40148f85e2feca87154a"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"e010e3231b4e40148f85e2feca87154a","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OX0.dSj8vS7ZQD6dr3Bqt12uaylznJ2vW1nWfGFsImLk6HY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"34d42c3960bc31043200234671c67a80","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:19Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.256626,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308059,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OX0.dSj8vS7ZQD6dr3Bqt12uaylznJ2vW1nWfGFsImLk6HY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34d42c3960bc31043200234671c67a80"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.870163721Z"}]},"request_id":"c76bf6af-469c-4ac4-8703-7fd1b9076884","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308059.368465} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34d42c3960bc31043200234671c67a80"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79a75c7b-9fea-4f82-8283-8aa4796f759a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308059.376207} 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":"34d42c3960bc31043200234671c67a80"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.870163721Z"}]},"request_id":"95b64c2f-f5c0-4649-9ae0-8b96877abb33","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308059.4072156} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34d42c3960bc31043200234671c67a80"},"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":"21/May/2024:16:14:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cecff927-a874-4806-8f56-73055e3687f2 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.064","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"34d42c3960bc31043200234671c67a80"} device-1 | {"level":"info","message":"PATCH /devices/cecff927-a874-4806-8f56-73055e3687f2 200 58ms","method":"PATCH","requestID":"34d42c3960bc31043200234671c67a80","responseTime":58,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OX0.dSj8vS7ZQD6dr3Bqt12uaylznJ2vW1nWfGFsImLk6HY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8f63ea05238332c526f850b87778d965","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:19Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.234513,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308059,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA1OX0.dSj8vS7ZQD6dr3Bqt12uaylznJ2vW1nWfGFsImLk6HY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8f63ea05238332c526f850b87778d965"},"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":"21/May/2024:16:14:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cecff927-a874-4806-8f56-73055e3687f2/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":"8f63ea05238332c526f850b87778d965"} device-1 | {"level":"info","message":"POST /devices/cecff927-a874-4806-8f56-73055e3687f2/websocket 200 24ms","method":"POST","requestID":"8f63ea05238332c526f850b87778d965","responseTime":24,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2' 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":"737530da8dc93b961b9949c4901277f4","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/98780612-a08a-43d0-8e9e-c1165982aa02/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":"737530da8dc93b961b9949c4901277f4"} device-1 | {"level":"info","message":"OPTIONS /devices/98780612-a08a-43d0-8e9e-c1165982aa02/websocket 200 1ms","method":"OPTIONS","requestID":"737530da8dc93b961b9949c4901277f4","responseTime":1,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MH0.VFTTGt7dybqnfSoGjNZcF-ARZM-HosYazqFgzb3wt-s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"057e6d84d151d4918a7da900ff97e4d2","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.638788,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308060,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MH0.VFTTGt7dybqnfSoGjNZcF-ARZM-HosYazqFgzb3wt-s"} 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":"057e6d84d151d4918a7da900ff97e4d2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/98780612-a08a-43d0-8e9e-c1165982aa02/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":"057e6d84d151d4918a7da900ff97e4d2"} device-1 | {"level":"info","message":"POST /devices/98780612-a08a-43d0-8e9e-c1165982aa02/websocket 200 42ms","method":"POST","requestID":"057e6d84d151d4918a7da900ff97e4d2","responseTime":42,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MH0.VFTTGt7dybqnfSoGjNZcF-ARZM-HosYazqFgzb3wt-s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f8dab6af65e72135d4457361710fe468","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.136413,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308060,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MH0.VFTTGt7dybqnfSoGjNZcF-ARZM-HosYazqFgzb3wt-s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8dab6af65e72135d4457361710fe468"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.825448688Z"}]},"request_id":"bce0a3d1-58cf-42cd-9589-3ce561bc395a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308060.9736829} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8dab6af65e72135d4457361710fe468"},"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":"21/May/2024:16:14:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/98780612-a08a-43d0-8e9e-c1165982aa02? 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":"f8dab6af65e72135d4457361710fe468"} device-1 | {"level":"info","message":"GET /devices/98780612-a08a-43d0-8e9e-c1165982aa02? 200 20ms","method":"GET","requestID":"f8dab6af65e72135d4457361710fe468","responseTime":20,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MH0.VFTTGt7dybqnfSoGjNZcF-ARZM-HosYazqFgzb3wt-s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"27480c2ccfec2690790d205c0ec623bb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20591,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308060,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MH0.VFTTGt7dybqnfSoGjNZcF-ARZM-HosYazqFgzb3wt-s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"27480c2ccfec2690790d205c0ec623bb"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.870163721Z"}]},"request_id":"d7a6b65f-2053-4be6-a03d-181143d69e62","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.0008955} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"27480c2ccfec2690790d205c0ec623bb"},"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":"21/May/2024:16:14:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cecff927-a874-4806-8f56-73055e3687f2? 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":"27480c2ccfec2690790d205c0ec623bb"} device-1 | {"level":"info","message":"GET /devices/cecff927-a874-4806-8f56-73055e3687f2? 200 19ms","method":"GET","requestID":"27480c2ccfec2690790d205c0ec623bb","responseTime":19,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"154a6e4e9366e1b7d99f8120efceed03","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:47510","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.303967,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308061,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"154a6e4e9366e1b7d99f8120efceed03"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"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:47510","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.127189,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308061,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c"} 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":"2e8f8540-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.21165,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308061,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c"} 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":"2e8fd360-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.825448688Z"}]},"request_id":"33e350c4-6b6c-4a8b-bd7c-2dc9743f2321","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.093334} 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":"2e8f8540-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.870163721Z"}]},"request_id":"6ab25325-4b46-4c61-8436-1097e85f1452","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.0949636} 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":"2e8fd360-178d-11ef-9e06-b78ba83e54a6"},"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/98780612-a08a-43d0-8e9e-c1165982aa02? 200 27ms","method":"GET","requestID":"2e8f8540-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cecff927-a874-4806-8f56-73055e3687f2? 200 27ms","method":"GET","requestID":"2e8fd360-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"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/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.3151,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308061,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c"} 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":"2ea30d40-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.437871,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308061,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c"} 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":"2ea35b60-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.825448688Z"}]},"request_id":"29a1ad5d-5b1b-40a2-bb6e-427f704c9550","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.226351} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"71dc4e94-6938-4603-9383-aaab26255c12","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.2277308} 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":"2ea30d40-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.870163721Z"}]},"request_id":"955c5961-e887-4441-b964-d0b4c1ad0690","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.2284873} 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":"2ea35b60-178d-11ef-9e06-b78ba83e54a6"},"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:47510","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.157422,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","rebac_allow":false,"scope_allow":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":"2ea3f7a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcf2b15ca-0040-48f0-9116-250b7679cd1f#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcf2b15ca-0040-48f0-9116-250b7679cd1f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"fe62bb2e-c0c3-421b-8bd4-d01f819f38ba","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.2407053} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c51d33af-d2b5-4303-8872-8c62252219d2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.240994} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/98780612-a08a-43d0-8e9e-c1165982aa02? 200 41ms","method":"GET","requestID":"2ea30d40-178d-11ef-9e06-b78ba83e54a6","responseTime":41,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02?"} 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":"154a6e4e9366e1b7d99f8120efceed03"},"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/cecff927-a874-4806-8f56-73055e3687f2? 200 41ms","method":"GET","requestID":"2ea35b60-178d-11ef-9e06-b78ba83e54a6","responseTime":41,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/98780612-a08a-43d0-8e9e-c1165982aa02/signaling 200 39ms","method":"POST","requestID":"2ea3f7a0-178d-11ef-9e06-b78ba83e54a6","responseTime":39,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2be5f291-2441-4f92-9866-d9df6e35a2d0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.2636173} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.563854,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"21/May/2024:16:14:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.258","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"154a6e4e9366e1b7d99f8120efceed03"} experiment-1 | {"level":"info","message":"POST /experiments? 201 253ms","method":"POST","requestID":"154a6e4e9366e1b7d99f8120efceed03","responseTime":253,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2eaad570-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1bfe64f2-2a28-4be6-a9d3-ec903f1f9a33","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.2676694} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.041596,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","rebac_allow":false,"scope_allow":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":"2eab4aa0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/98780612-a08a-43d0-8e9e-c1165982aa02/signaling 200 21ms","method":"POST","requestID":"2eaad570-178d-11ef-9e06-b78ba83e54a6","responseTime":21,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"228e20d8024af1691cb411f90980208a","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cecff927-a874-4806-8f56-73055e3687f2/signaling 200 22ms","method":"POST","requestID":"2eab4aa0-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.006238,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308061,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"228e20d8024af1691cb411f90980208a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"628bb190-de20-41cf-b936-7ad9f673fb1d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.2897208} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.825448688Z"}]},"request_id":"6df3f2ff-4423-4330-923f-cb9d6f1d9ff7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.290262} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"228e20d8024af1691cb411f90980208a"},"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:47510","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.006041,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","rebac_allow":false,"scope_allow":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":"2eaef420-178d-11ef-9e06-b78ba83e54a6"},"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":"21/May/2024:16:14:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/98780612-a08a-43d0-8e9e-c1165982aa02? 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":"228e20d8024af1691cb411f90980208a"} device-1 | {"level":"info","message":"GET /devices/98780612-a08a-43d0-8e9e-c1165982aa02? 200 19ms","method":"GET","requestID":"228e20d8024af1691cb411f90980208a","responseTime":19,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cecff927-a874-4806-8f56-73055e3687f2/signaling 200 16ms","method":"POST","requestID":"2eaef420-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"e8cfb722-177d-46dd-85b2-f9e859a0dda8"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"f73ecfda-40a0-4cd2-89b3-474c693a92ca"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"e5631e4a-5352-46fb-89ce-ae2e92f1c2c3"}]},"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/98780612-a08a-43d0-8e9e-c1165982aa02"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c2937b8d51a07baafa651bb974690115","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.696591,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308061,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c"} 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":"2eb20160-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45788","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628805,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308061,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2MX0.RyYP5ksRvW8EGwmNs1wAbcHDC0E7Qj7-2rbuF1Hw1_c"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2937b8d51a07baafa651bb974690115"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:18.870163721Z"}]},"request_id":"62252055-b298-4828-9c87-e8cd91238f27","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.3141568} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2937b8d51a07baafa651bb974690115"},"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":"21/May/2024:16:14:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cecff927-a874-4806-8f56-73055e3687f2? 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":"c2937b8d51a07baafa651bb974690115"} device-1 | {"level":"info","message":"GET /devices/cecff927-a874-4806-8f56-73055e3687f2? 200 14ms","method":"GET","requestID":"c2937b8d51a07baafa651bb974690115","responseTime":14,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"55042538-c9c8-4855-8889-b1830cc7ef3f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.3185937} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bfd291ee-67a7-4d6b-9f28-4213612a0c52","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.3188777} 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":"2eb20160-178d-11ef-9e06-b78ba83e54a6"},"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/a8999261-b1f7-4903-8a66-34f4cf9becdc'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 35ms","method":"POST","requestID":"2eb20160-178d-11ef-9e06-b78ba83e54a6","responseTime":35,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"99ba3bf6-f7d1-4d3f-9869-6e0f47e1ff5a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.3782446} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.977009,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","rebac_allow":false,"scope_allow":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":"2ebcd6d0-178d-11ef-9e06-b78ba83e54a6"},"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/98780612-a08a-43d0-8e9e-c1165982aa02/signaling 200 11ms","method":"POST","requestID":"2ebcd6d0-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"94ed38f6-6b43-4bdf-8664-6821fe177f5e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308061.391869} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.366446,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","rebac_allow":false,"scope_allow":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":"2ebef9b0-178d-11ef-9e06-b78ba83e54a6"},"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/cecff927-a874-4806-8f56-73055e3687f2/signaling 200 9ms","method":"POST","requestID":"2ebef9b0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2/signaling"} device-1 | {"data":{"peerconnection":"a8999261-b1f7-4903-8a66-34f4cf9becdc","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/a8999261-b1f7-4903-8a66-34f4cf9becdc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a8999261-b1f7-4903-8a66-34f4cf9becdc","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02'"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cb38ac088b0513e503c5519a713576e0","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/98780612-a08a-43d0-8e9e-c1165982aa02"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"cb38ac088b0513e503c5519a713576e0","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"cb38ac088b0513e503c5519a713576e0"} device-1 | {"data":{"peerconnection":"a8999261-b1f7-4903-8a66-34f4cf9becdc","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a8999261-b1f7-4903-8a66-34f4cf9becdc","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/a8999261-b1f7-4903-8a66-34f4cf9becdc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a8999261-b1f7-4903-8a66-34f4cf9becdc","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":"6c1482d4db61eaa45500ad2e1d9ef81d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa8999261-b1f7-4903-8a66-34f4cf9becdc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f5bc33ba-903d-4bb2-8a56-344e4b7f4513","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.5607045} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.05394,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc","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":"3009a220-178d-11ef-9e06-b78ba83e54a6"},"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/a8999261-b1f7-4903-8a66-34f4cf9becdc 200 12ms","method":"GET","requestID":"3009a220-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"6c1482d4db61eaa45500ad2e1d9ef81d","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch","requestID":"6c1482d4db61eaa45500ad2e1d9ef81d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b14b0c3b-6bcd-4bad-8694-8b3594f1d74e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.5951588} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.003749,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","rebac_allow":false,"scope_allow":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":"300ef950-178d-11ef-9e06-b78ba83e54a6"},"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/98780612-a08a-43d0-8e9e-c1165982aa02/signaling 200 12ms","method":"POST","requestID":"300ef950-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:23Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0365b06f-a0d4-4454-acdb-e19193f636a3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.609519} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.731597,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","rebac_allow":false,"scope_allow":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":"30114340-178d-11ef-9e06-b78ba83e54a6"},"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/cecff927-a874-4806-8f56-73055e3687f2/signaling 200 14ms","method":"POST","requestID":"30114340-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2M30.rBNATs4mLUID3u_u2xrFmuC1J2T2ePPoUv6wlZcDlUI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3b4e66a0fc8d7f86168d86b786bc2e9d","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.270817,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308063,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2M30.rBNATs4mLUID3u_u2xrFmuC1J2T2ePPoUv6wlZcDlUI"} 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":"3b4e66a0fc8d7f86168d86b786bc2e9d"},"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/cf2b15ca-0040-48f0-9116-250b7679cd1f"} gateway-1 | {"time_local":"21/May/2024:16:14:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f 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":"3b4e66a0fc8d7f86168d86b786bc2e9d"} experiment-1 | {"level":"info","message":"GET /experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f 200 18ms","method":"GET","requestID":"3b4e66a0fc8d7f86168d86b786bc2e9d","responseTime":18,"status":200,"url":"/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2M30.rBNATs4mLUID3u_u2xrFmuC1J2T2ePPoUv6wlZcDlUI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9e6f280cfb114de14ad9d33aeb51bf5a","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.16246,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308063,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2M30.rBNATs4mLUID3u_u2xrFmuC1J2T2ePPoUv6wlZcDlUI"} 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":"9e6f280cfb114de14ad9d33aeb51bf5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.675509,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308063,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2M30.rBNATs4mLUID3u_u2xrFmuC1J2T2ePPoUv6wlZcDlUI"} 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":"3039d9e0-178d-11ef-9e06-b78ba83e54a6"},"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/a8999261-b1f7-4903-8a66-34f4cf9becdc' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a8999261-b1f7-4903-8a66-34f4cf9becdc","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa8999261-b1f7-4903-8a66-34f4cf9becdc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa8999261-b1f7-4903-8a66-34f4cf9becdc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"b9d9f2a9-d076-416d-b42d-0e08a0a31fa5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.8932397} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e7ca4588-1141-42cd-8444-ecdd96938410","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.893538} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3c218413aeba107fc57460bee63259d3","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":"3039d9e0-178d-11ef-9e06-b78ba83e54a6"},"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":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ed48c7b13eb72433c66c3984b60fce81","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":"connected","url":"http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc 204 49ms","method":"DELETE","requestID":"3039d9e0-178d-11ef-9e06-b78ba83e54a6","responseTime":49,"status":204,"url":"/peerconnections/a8999261-b1f7-4903-8a66-34f4cf9becdc"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F98780612-a08a-43d0-8e9e-c1165982aa02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"46812242-7253-458c-a9f5-3c0a079e72b1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.9437132} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.16908,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/98780612-a08a-43d0-8e9e-c1165982aa02","object_type":"device","rebac_allow":false,"scope_allow":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":"30443a20-178d-11ef-9e06-b78ba83e54a6"},"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/98780612-a08a-43d0-8e9e-c1165982aa02/signaling 200 12ms","method":"POST","requestID":"30443a20-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/98780612-a08a-43d0-8e9e-c1165982aa02/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcf2b15ca-0040-48f0-9116-250b7679cd1f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcf2b15ca-0040-48f0-9116-250b7679cd1f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"e9487f6e-df6e-42b4-9e20-bcd5234378b7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.9518344} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d6967013-7b63-47b7-ad47-93619805ddca","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.9521227} 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":"9e6f280cfb114de14ad9d33aeb51bf5a"},"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:47510","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcecff927-a874-4806-8f56-73055e3687f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fc9b24c1-076b-47e9-a7e7-aee6afec5b19","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308063.9578898} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.487681,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cecff927-a874-4806-8f56-73055e3687f2","object_type":"device","rebac_allow":false,"scope_allow":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":"30468410-178d-11ef-9e06-b78ba83e54a6"},"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/cecff927-a874-4806-8f56-73055e3687f2/signaling 200 11ms","method":"POST","requestID":"30468410-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/cecff927-a874-4806-8f56-73055e3687f2/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"} gateway-1 | {"time_local":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9e6f280cfb114de14ad9d33aeb51bf5a"} gateway-1 | {"time_local":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2582","request_time":"4.577","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"30f85b1a2a7f9e11ff8484932ed6da33"} experiment-1 | {"level":"info","message":"DELETE /experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f 204 169ms","method":"DELETE","requestID":"9e6f280cfb114de14ad9d33aeb51bf5a","responseTime":169,"status":204,"url":"/experiments/cf2b15ca-0040-48f0-9116-250b7679cd1f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 129ms","method":"POST","requestID":"3c218413aeba107fc57460bee63259d3","responseTime":129,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.132","http_referrer":"","http_user_agent":"node-fetch","requestID":"3c218413aeba107fc57460bee63259d3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 129ms","method":"POST","requestID":"ed48c7b13eb72433c66c3984b60fce81","responseTime":129,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.133","http_referrer":"","http_user_agent":"node-fetch","requestID":"ed48c7b13eb72433c66c3984b60fce81"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2NH0.SoRP8dAQWmIoHqoQPkFtzYCwRoFcSe5F7kbKAJwuk5U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f7e125b292ff90e60fe0d4623153e09a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2490","request_time":"3.097","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"db8c4dc4065d260f6abb7ae22cbbd284"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:24Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.978634,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308064,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2NH0.SoRP8dAQWmIoHqoQPkFtzYCwRoFcSe5F7kbKAJwuk5U"} 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":"f7e125b292ff90e60fe0d4623153e09a"},"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/cecff927-a874-4806-8f56-73055e3687f2' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"23e743bc-77e2-4a1c-ad15-688f9f897eee","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.0509405} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f7e125b292ff90e60fe0d4623153e09a"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"86992ed0-695f-4374-8bff-0f8d37fc1681","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.057342} 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":"f7e125b292ff90e60fe0d4623153e09a"},"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/98780612-a08a-43d0-8e9e-c1165982aa02' closed"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"6ed09f0d-1ed4-47c6-84a2-42df3b004642","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.0705395} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"051cc054-f287-4dde-a765-4bb205b1ffd8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.0706527} 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":"f7e125b292ff90e60fe0d4623153e09a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.070515993Z"}]},"request_id":"4ffa367c-4acd-4d4b-8bb9-53144b7f4508","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.0752277} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f7e125b292ff90e60fe0d4623153e09a"},"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":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f7e125b292ff90e60fe0d4623153e09a"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"f7e125b292ff90e60fe0d4623153e09a","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2NH0.SoRP8dAQWmIoHqoQPkFtzYCwRoFcSe5F7kbKAJwuk5U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f20392b346243e3e5898b350cfb158ac","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:24Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.680648,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308064,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2NH0.SoRP8dAQWmIoHqoQPkFtzYCwRoFcSe5F7kbKAJwuk5U"} 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":"f20392b346243e3e5898b350cfb158ac"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bb541043-bb88-49c9-bc44-70be58d937d8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.1002178} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f20392b346243e3e5898b350cfb158ac"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0ad0d774-677f-4a19-972e-e0426af4fba9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.1056464} 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":"f20392b346243e3e5898b350cfb158ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"f5150dc2-9f10-44ed-996c-b43baad1ae00","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.1149862} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c65657f3-d69d-46f1-bb58-9b876884e216","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.1150901} 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":"f20392b346243e3e5898b350cfb158ac"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.114962860Z"}]},"request_id":"babf96dc-a7e1-4988-aa8d-05166c7d2cac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.1206932} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f20392b346243e3e5898b350cfb158ac"},"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":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f20392b346243e3e5898b350cfb158ac"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"f20392b346243e3e5898b350cfb158ac","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2NH0.SoRP8dAQWmIoHqoQPkFtzYCwRoFcSe5F7kbKAJwuk5U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fcec9423467b640c0cda6839de852ca0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:24Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.675283,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:24Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308064,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2NH0.SoRP8dAQWmIoHqoQPkFtzYCwRoFcSe5F7kbKAJwuk5U"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fcec9423467b640c0cda6839de852ca0"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.070515993Z"}]},"request_id":"53588ec5-1a64-41a1-929b-81ec3376bd26","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.6085355} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fcec9423467b640c0cda6839de852ca0"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"056468be-5d61-4e8b-be22-366be7a3e319","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.614976} 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":"fcec9423467b640c0cda6839de852ca0"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.070515993Z"}]},"request_id":"92f3e325-a074-4a17-9a9c-fec8043a1ee3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308064.6455228} 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":"fcec9423467b640c0cda6839de852ca0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0 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":"fcec9423467b640c0cda6839de852ca0"} device-1 | {"level":"info","message":"PATCH /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0 200 55ms","method":"PATCH","requestID":"fcec9423467b640c0cda6839de852ca0","responseTime":55,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2NH0.SoRP8dAQWmIoHqoQPkFtzYCwRoFcSe5F7kbKAJwuk5U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9698b25792346299b0ef1e3f0292929c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:24Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.247561,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:24Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308064,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2NH0.SoRP8dAQWmIoHqoQPkFtzYCwRoFcSe5F7kbKAJwuk5U"} 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":"9698b25792346299b0ef1e3f0292929c"},"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":"21/May/2024:16:14:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/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":"9698b25792346299b0ef1e3f0292929c"} device-1 | {"level":"info","message":"POST /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/websocket 200 23ms","method":"POST","requestID":"9698b25792346299b0ef1e3f0292929c","responseTime":23,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0' 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":"e10762a3b4df4fdb148195052c619e7a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1801867e-3401-4ef8-809d-72e94414ae11/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":"e10762a3b4df4fdb148195052c619e7a"} device-1 | {"level":"info","message":"OPTIONS /devices/1801867e-3401-4ef8-809d-72e94414ae11/websocket 200 2ms","method":"OPTIONS","requestID":"e10762a3b4df4fdb148195052c619e7a","responseTime":2,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6f977d8f2b9db3b02385e7301a5b7539","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.544737,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} 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":"6f977d8f2b9db3b02385e7301a5b7539"},"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":"21/May/2024:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1801867e-3401-4ef8-809d-72e94414ae11/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":"6f977d8f2b9db3b02385e7301a5b7539"} device-1 | {"level":"info","message":"POST /devices/1801867e-3401-4ef8-809d-72e94414ae11/websocket 200 40ms","method":"POST","requestID":"6f977d8f2b9db3b02385e7301a5b7539","responseTime":40,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f5f2cdbd4016afc80e71c743392785dc","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.361059,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f5f2cdbd4016afc80e71c743392785dc"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.070515993Z"}]},"request_id":"bdd8cca9-ce83-43d9-9c0f-ebf9840774ad","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.2171946} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f5f2cdbd4016afc80e71c743392785dc"},"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":"21/May/2024:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0? 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":"f5f2cdbd4016afc80e71c743392785dc"} device-1 | {"level":"info","message":"GET /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0? 200 19ms","method":"GET","requestID":"f5f2cdbd4016afc80e71c743392785dc","responseTime":19,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"00544e8c532a0a9a3b0cc8e3f22da2de","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.321219,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00544e8c532a0a9a3b0cc8e3f22da2de"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.114962860Z"}]},"request_id":"cbc17b1b-1861-45d3-9298-98349c22ffe9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.2434592} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00544e8c532a0a9a3b0cc8e3f22da2de"},"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":"21/May/2024:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1801867e-3401-4ef8-809d-72e94414ae11? 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":"00544e8c532a0a9a3b0cc8e3f22da2de"} device-1 | {"level":"info","message":"GET /devices/1801867e-3401-4ef8-809d-72e94414ae11? 200 19ms","method":"GET","requestID":"00544e8c532a0a9a3b0cc8e3f22da2de","responseTime":19,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"35c5c762945f6a22193f9f3bf154b9af","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:47510","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.18877,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} 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":"35c5c762945f6a22193f9f3bf154b9af"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"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:47510","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.372843,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"31afd810-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.999637,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} 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":"31afff20-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.070515993Z"}]},"request_id":"456dc97a-b6a2-481c-8b9e-8a192b5bd9e2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.3337095} 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":"31afd810-178d-11ef-9e06-b78ba83e54a6"},"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/5c124794-6c69-4d0b-aec0-e064d8c554a0? 200 22ms","method":"GET","requestID":"31afd810-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.114962860Z"}]},"request_id":"cdcc586a-74ce-4a4d-82fb-3f623bb12303","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.3400073} 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":"31afff20-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1801867e-3401-4ef8-809d-72e94414ae11? 200 29ms","method":"GET","requestID":"31afff20-178d-11ef-9e06-b78ba83e54a6","responseTime":29,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"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:47510","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.71712,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} 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":"31c0c800-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.569079,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} 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":"31c13d30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bbaf6454-9ceb-4d92-9978-12b36d9ef2b6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.4531715} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.070515993Z"}]},"request_id":"39638f00-6fb0-4474-96be-d959c0c5fe46","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.4538455} 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":"31c0c800-178d-11ef-9e06-b78ba83e54a6"},"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:47510","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.741278,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","rebac_allow":false,"scope_allow":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":"31c1d970-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.114962860Z"}]},"request_id":"3da11d36-525b-4ce0-b855-0b1698a329d2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.4557054} 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":"31c13d30-178d-11ef-9e06-b78ba83e54a6"},"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/5c124794-6c69-4d0b-aec0-e064d8c554a0? 200 31ms","method":"GET","requestID":"31c0c800-178d-11ef-9e06-b78ba83e54a6","responseTime":31,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6a68cd46-af9f-45d6-ad47-808d83ab4660#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6a68cd46-af9f-45d6-ad47-808d83ab4660","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"649008d4-a816-4f9a-9ea8-439eb7be8e25","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.4650266} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7645861c-b596-4981-b74a-9f39ece81144","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.4658093} 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":"35c5c762945f6a22193f9f3bf154b9af"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling 200 32ms","method":"POST","requestID":"31c1d970-178d-11ef-9e06-b78ba83e54a6","responseTime":32,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1801867e-3401-4ef8-809d-72e94414ae11? 200 38ms","method":"GET","requestID":"31c13d30-178d-11ef-9e06-b78ba83e54a6","responseTime":38,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"09f9acd6-e86d-4d31-97e7-aef6a30d6fbd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.4860692} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.63363,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","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/6a68cd46-af9f-45d6-ad47-808d83ab4660","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"31c7cce0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} gateway-1 | {"time_local":"21/May/2024:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.238","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"35c5c762945f6a22193f9f3bf154b9af"} experiment-1 | {"level":"info","message":"POST /experiments? 201 231ms","method":"POST","requestID":"35c5c762945f6a22193f9f3bf154b9af","responseTime":231,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"819f97ce-c84b-4dce-a668-af812533c4c8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.4924808} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.93842,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","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/1801867e-3401-4ef8-809d-72e94414ae11/signaling 200 18ms","method":"POST","requestID":"31c7cce0-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11/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":"31c89030-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling 200 16ms","method":"POST","requestID":"31c89030-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e095f04aeb1930e0cae659e54d34d367","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.076538,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e095f04aeb1930e0cae659e54d34d367"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98ffc5b0-b2d8-4ce3-8a2f-42840d842a5a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.5122638} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.070515993Z"}]},"request_id":"558b4dd6-24ce-4584-be6a-07d99043ae5b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.5126407} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e095f04aeb1930e0cae659e54d34d367"},"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:47510","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.237332,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","rebac_allow":false,"scope_allow":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":"31cbeb90-178d-11ef-9e06-b78ba83e54a6"},"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":"21/May/2024:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0? 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":"e095f04aeb1930e0cae659e54d34d367"} device-1 | {"level":"info","message":"GET /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0? 200 17ms","method":"GET","requestID":"e095f04aeb1930e0cae659e54d34d367","responseTime":17,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1801867e-3401-4ef8-809d-72e94414ae11/signaling 200 15ms","method":"POST","requestID":"31cbeb90-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"c93ba68b-14f5-4cea-adcc-595f7c669fd2"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"e4f7e347-faac-4167-98b7-f893e1b459f1"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"68d13dbb-7788-4a56-9f45-18f209703246"}]},"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/1801867e-3401-4ef8-809d-72e94414ae11"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5e6767995731b9f9ed7f6d404d87389a","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:47510","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.126538,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} 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":"31cef8d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.890446,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308066,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2Nn0.lh1NUUAEdce8GXIBe3mVfzTR85aKgUpUrrrySAbbnZ0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e6767995731b9f9ed7f6d404d87389a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:24.114962860Z"}]},"request_id":"578778cb-4a2a-4819-a96d-f867cc4465a7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.5366192} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e6767995731b9f9ed7f6d404d87389a"},"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":"21/May/2024:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1801867e-3401-4ef8-809d-72e94414ae11? 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":"5e6767995731b9f9ed7f6d404d87389a"} device-1 | {"level":"info","message":"GET /devices/1801867e-3401-4ef8-809d-72e94414ae11? 200 14ms","method":"GET","requestID":"5e6767995731b9f9ed7f6d404d87389a","responseTime":14,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"7bbd757d-038a-4245-ad95-d9a9b417aa0d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.5409727} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5376e60-c76f-4159-8da3-6e02b048fc8c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.5414562} 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":"31cef8d0-178d-11ef-9e06-b78ba83e54a6"},"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/8912f5f3-0975-4010-bc48-3e0e8eadf8b3'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3'"} 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":"31cef8d0-178d-11ef-9e06-b78ba83e54a6","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/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d32202ed-5eb6-45c0-a6e0-7355a3ab977a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.6031413} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.540444,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","rebac_allow":false,"scope_allow":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":"31da1c60-178d-11ef-9e06-b78ba83e54a6"},"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/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling 200 9ms","method":"POST","requestID":"31da1c60-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"054b8ac3-a32d-49dc-999b-f22c3b331ee8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308066.6143465} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.43013,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","rebac_allow":false,"scope_allow":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":"31dbca10-178d-11ef-9e06-b78ba83e54a6"},"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/1801867e-3401-4ef8-809d-72e94414ae11/signaling 200 9ms","method":"POST","requestID":"31dbca10-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11/signaling"} device-1 | {"data":{"peerconnection":"8912f5f3-0975-4010-bc48-3e0e8eadf8b3","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/8912f5f3-0975-4010-bc48-3e0e8eadf8b3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8912f5f3-0975-4010-bc48-3e0e8eadf8b3","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":"20df37ff632e0d425e989c169f4b4d4e","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11'"} 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/1801867e-3401-4ef8-809d-72e94414ae11"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"20df37ff632e0d425e989c169f4b4d4e","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"20df37ff632e0d425e989c169f4b4d4e"} device-1 | {"data":{"peerconnection":"8912f5f3-0975-4010-bc48-3e0e8eadf8b3","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"8912f5f3-0975-4010-bc48-3e0e8eadf8b3","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/8912f5f3-0975-4010-bc48-3e0e8eadf8b3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8912f5f3-0975-4010-bc48-3e0e8eadf8b3","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_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3"}}},"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":"7f6b8d182acca5c4b63577ad73db6a19","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:28Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8912f5f3-0975-4010-bc48-3e0e8eadf8b3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bfa0f518-b3a4-48a4-b2c1-f9f126c5de53","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308068.783599} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.470075,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3","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":"33269990-178d-11ef-9e06-b78ba83e54a6"},"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/8912f5f3-0975-4010-bc48-3e0e8eadf8b3 200 13ms","method":"GET","requestID":"33269990-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"7f6b8d182acca5c4b63577ad73db6a19","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"7f6b8d182acca5c4b63577ad73db6a19"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:28Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c37ef80-6714-4281-a6fb-3d4d58a132bc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308068.8192} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.552036,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","rebac_allow":false,"scope_allow":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":"332c3ee0-178d-11ef-9e06-b78ba83e54a6"},"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/1801867e-3401-4ef8-809d-72e94414ae11/signaling 200 12ms","method":"POST","requestID":"332c3ee0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:28Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a550e395-7fd4-424d-9b6c-1276b47e0bc5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308068.8317523} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.533135,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:28Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling 200 10ms","method":"POST","requestID":"332e3ab0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","rebac_allow":false,"scope_allow":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":"332e3ab0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OH0.ETKu4Aa1vXGDA1vx_1coz5acX7B35W63HsmgD4vdVfM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a9ae7252dcac5d1f218e84a59ad936f9","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:28Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.193022,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308068,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OH0.ETKu4Aa1vXGDA1vx_1coz5acX7B35W63HsmgD4vdVfM"} 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":"a9ae7252dcac5d1f218e84a59ad936f9"},"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/6a68cd46-af9f-45d6-ad47-808d83ab4660"} gateway-1 | {"time_local":"21/May/2024:16:14:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660 HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9ae7252dcac5d1f218e84a59ad936f9"} experiment-1 | {"level":"info","message":"GET /experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660 200 21ms","method":"GET","requestID":"a9ae7252dcac5d1f218e84a59ad936f9","responseTime":21,"status":200,"url":"/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"d814eff413ce601ef3375879dfe4ca10","responseTime":7,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.608636,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"d814eff413ce601ef3375879dfe4ca10"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.911351,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"334c4a00-178d-11ef-9e06-b78ba83e54a6"},"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/8912f5f3-0975-4010-bc48-3e0e8eadf8b3' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8912f5f3-0975-4010-bc48-3e0e8eadf8b3","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8912f5f3-0975-4010-bc48-3e0e8eadf8b3': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8912f5f3-0975-4010-bc48-3e0e8eadf8b3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"7a9e2f21-baf6-44e4-a5e5-e8fb6d8b0ee3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.0444908} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2bc59ad8-4375-4f86-a8f6-5ae486d167c1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.0447328} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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 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":"334c4a00-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ce4765b887763535a786f1020763bdfc","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":"029db71738d88d303f1c7fb6fd06e7f5","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/1801867e-3401-4ef8-809d-72e94414ae11"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3"}}},"level":"info","message":"received a callback"} 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/1801867e-3401-4ef8-809d-72e94414ae11"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"8912f5f3-0975-4010-bc48-3e0e8eadf8b3","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/8912f5f3-0975-4010-bc48-3e0e8eadf8b3 204 61ms","method":"DELETE","requestID":"334c4a00-178d-11ef-9e06-b78ba83e54a6","responseTime":61,"status":204,"url":"/peerconnections/8912f5f3-0975-4010-bc48-3e0e8eadf8b3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1801867e-3401-4ef8-809d-72e94414ae11","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5c130526-739c-4f54-9e49-5048950b0a5f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.1211479} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.01096,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1801867e-3401-4ef8-809d-72e94414ae11","object_type":"device","rebac_allow":false,"scope_allow":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":"335a2cb0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6a68cd46-af9f-45d6-ad47-808d83ab4660': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6a68cd46-af9f-45d6-ad47-808d83ab4660","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"38f0f07d-07a5-4b26-abdb-c2fb70ad336a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.1291673} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c2b9a4d-74e0-4046-b5db-77f8929343fb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.1296113} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1801867e-3401-4ef8-809d-72e94414ae11/signaling 200 16ms","method":"POST","requestID":"335a2cb0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/1801867e-3401-4ef8-809d-72e94414ae11/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d814eff413ce601ef3375879dfe4ca10"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c124794-6c69-4d0b-aec0-e064d8c554a0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7fc2230d-35fa-46ec-a27f-837847cd770e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.140124} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.48282,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0","object_type":"device","rebac_allow":false,"scope_allow":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":"335d12e0-178d-11ef-9e06-b78ba83e54a6"},"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/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling 200 13ms","method":"POST","requestID":"335d12e0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/5c124794-6c69-4d0b-aec0-e064d8c554a0/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"} gateway-1 | {"time_local":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660 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":"d814eff413ce601ef3375879dfe4ca10"} gateway-1 | {"time_local":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2582","request_time":"4.513","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"34da828949755a7ec158001e797ab5cb"} experiment-1 | {"level":"info","message":"DELETE /experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660 204 188ms","method":"DELETE","requestID":"d814eff413ce601ef3375879dfe4ca10","responseTime":188,"status":204,"url":"/experiments/6a68cd46-af9f-45d6-ad47-808d83ab4660"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 150ms","method":"POST","requestID":"ce4765b887763535a786f1020763bdfc","responseTime":150,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.155","http_referrer":"","http_user_agent":"node-fetch","requestID":"ce4765b887763535a786f1020763bdfc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 149ms","method":"POST","requestID":"029db71738d88d303f1c7fb6fd06e7f5","responseTime":149,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.155","http_referrer":"","http_user_agent":"node-fetch","requestID":"029db71738d88d303f1c7fb6fd06e7f5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"67444d7176c66afdc548d97b3b03d5ca","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/5c124794-6c69-4d0b-aec0-e064d8c554a0' closed"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} gateway-1 | {"time_local":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2490","request_time":"3.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e6a24781e4b0316551af89b6ecedced2"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.085315,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"67444d7176c66afdc548d97b3b03d5ca"},"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/1801867e-3401-4ef8-809d-72e94414ae11' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d3eb5c66-f340-4389-8848-ca8fa797b9f2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.2337072} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"67444d7176c66afdc548d97b3b03d5ca"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ca10fc55-79b2-4ec3-9300-8e4fef2d8a2a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.2398903} 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":"67444d7176c66afdc548d97b3b03d5ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"52818cd5-34da-4d53-89c7-227b3ff2e455","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.250719} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6fc2c05-b45c-4560-be57-f21456bbc9bf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.250903} 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":"67444d7176c66afdc548d97b3b03d5ca"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.250693060Z"}]},"request_id":"710fb01e-14e9-41f6-ba52-8e2e79824b10","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.2559888} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"67444d7176c66afdc548d97b3b03d5ca"},"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":"21/May/2024:16:14: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.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"67444d7176c66afdc548d97b3b03d5ca"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"67444d7176c66afdc548d97b3b03d5ca","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bc2af1c7d8a0e543170c1c9d32770424","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.729597,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"bc2af1c7d8a0e543170c1c9d32770424"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9b15e9ac-5ce7-4c99-870d-542d815c8173","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.2808318} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc2af1c7d8a0e543170c1c9d32770424"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb547139-db6c-490c-b18e-af241e3a5ae7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.2860444} 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":"bc2af1c7d8a0e543170c1c9d32770424"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d4791503-a740-4e1c-8126-bc3c403482c8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.2967525} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bfd95d0a-a716-4f37-9c2c-bdd0c40f2591","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.2969835} 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":"bc2af1c7d8a0e543170c1c9d32770424"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.296721729Z"}]},"request_id":"d6cb6be1-f05c-4abb-9425-5fd31dff9cf3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.3012962} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bc2af1c7d8a0e543170c1c9d32770424"},"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":"21/May/2024:16:14: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":"bc2af1c7d8a0e543170c1c9d32770424"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"bc2af1c7d8a0e543170c1c9d32770424","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"b452b4889ad82a6e17d499f53348f34d","responseTime":7,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"a1549456a5f47caa4d3415bd6f87cf81","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:47510","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6653,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"b452b4889ad82a6e17d499f53348f34d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.745256,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1549456a5f47caa4d3415bd6f87cf81"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.296721729Z"}]},"request_id":"d756fa72-a588-40df-9225-e8b7413003ec","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.788832} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b452b4889ad82a6e17d499f53348f34d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.250693060Z"}]},"request_id":"3186a013-7971-44dd-a769-4044abed4bfb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.7921202} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1549456a5f47caa4d3415bd6f87cf81"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"60361a82-2057-401c-8589-3da1a3215e47","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.7947147} 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":"b452b4889ad82a6e17d499f53348f34d"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f847bde9-dfda-45f9-b938-327ee08fd236","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.7985704} 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":"a1549456a5f47caa4d3415bd6f87cf81"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.296721729Z"}]},"request_id":"a68376f3-163d-4c4f-ad1c-194c5d1858da","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.822528} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b452b4889ad82a6e17d499f53348f34d"},"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":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c 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":"b452b4889ad82a6e17d499f53348f34d"} device-1 | {"level":"info","message":"PATCH /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c 200 48ms","method":"PATCH","requestID":"b452b4889ad82a6e17d499f53348f34d","responseTime":48,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"829f88feee08d6733bc68f77b776dac1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.250693060Z"}]},"request_id":"436306ad-ab06-40bc-9879-98a63703041a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.8316169} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1549456a5f47caa4d3415bd6f87cf81"},"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/77dbb4dc-9bd6-4326-90a2-83280cfe0623 200 54ms","method":"PATCH","requestID":"a1549456a5f47caa4d3415bd6f87cf81","responseTime":54,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623"} gateway-1 | {"time_local":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.065","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a1549456a5f47caa4d3415bd6f87cf81"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.705484,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"829f88feee08d6733bc68f77b776dac1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"56948b2f8ca868c20a56875d06a341c4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.906635,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56948b2f8ca868c20a56875d06a341c4"},"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":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c/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":"829f88feee08d6733bc68f77b776dac1"} device-1 | {"level":"info","message":"POST /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c/websocket 200 23ms","method":"POST","requestID":"829f88feee08d6733bc68f77b776dac1","responseTime":23,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/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":"56948b2f8ca868c20a56875d06a341c4"} device-1 | {"level":"info","message":"POST /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/websocket 200 22ms","method":"POST","requestID":"56948b2f8ca868c20a56875d06a341c4","responseTime":22,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d0285ef3c0699f84c18cb64457b8f80e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.914204,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"d0285ef3c0699f84c18cb64457b8f80e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.250693060Z"}]},"request_id":"eadb971f-056e-440d-b426-37ffd6c20e5c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.8992867} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0285ef3c0699f84c18cb64457b8f80e"},"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":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623? 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":"d0285ef3c0699f84c18cb64457b8f80e"} device-1 | {"level":"info","message":"GET /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623? 200 12ms","method":"GET","requestID":"d0285ef3c0699f84c18cb64457b8f80e","responseTime":12,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a5a7106dcee793186bb45e062e6d76ad","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.694351,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"a5a7106dcee793186bb45e062e6d76ad"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.296721729Z"}]},"request_id":"9e04368c-035e-452f-bf7b-bc05ff78894b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.916155} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a5a7106dcee793186bb45e062e6d76ad"},"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/c3d789ce-27c9-4473-9de2-32e58db22a6c? 200 12ms","method":"GET","requestID":"a5a7106dcee793186bb45e062e6d76ad","responseTime":12,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c?"} gateway-1 | {"time_local":"21/May/2024:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c? 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":"a5a7106dcee793186bb45e062e6d76ad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8d8063406e94ea0fa444cc7c2a949b3d","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:47510","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.813615,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"8d8063406e94ea0fa444cc7c2a949b3d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"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:47510","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.799797,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33de50d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.834932,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33de77e0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.250693060Z"}]},"request_id":"90f8d437-3485-4580-b3d4-8585e5c424ad","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.9913716} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33de50d0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.296721729Z"}]},"request_id":"1f67c5f6-6165-4e84-80b8-573c2d2fa80e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308069.992718} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33de77e0-178d-11ef-9e06-b78ba83e54a6"},"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/77dbb4dc-9bd6-4326-90a2-83280cfe0623? 200 16ms","method":"GET","requestID":"33de50d0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c? 200 16ms","method":"GET","requestID":"33de77e0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"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:47510","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.266813,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33ea37b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.034404,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"33ea85d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.263705,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6be17f48-1f9a-4c28-887f-597ba04a7121","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.0704277} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","rebac_allow":false,"scope_allow":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":"33ead3f0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.250693060Z"}]},"request_id":"cd4c4932-5ad6-4be4-b7e6-3f46734dfcf7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.0737758} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.296721729Z"}]},"request_id":"9fcef268-f57d-4da5-a5b6-d54557d45046","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.0758862} 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":"33ea37b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33ea85d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5cdc2731-9eb1-451c-945f-5e6176da700d#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5cdc2731-9eb1-451c-945f-5e6176da700d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"2a091ad7-b082-485e-9653-e0d4d51542b9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.0839958} device-1 | {"level":"info","message":"POST /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling 200 21ms","method":"POST","requestID":"33ead3f0-178d-11ef-9e06-b78ba83e54a6","responseTime":21,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39cd61ce-771f-4099-824e-0e106d5d7b9f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.0843391} device-1 | {"level":"info","message":"GET /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623? 200 26ms","method":"GET","requestID":"33ea37b0-178d-11ef-9e06-b78ba83e54a6","responseTime":26,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623?"} 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":"8d8063406e94ea0fa444cc7c2a949b3d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"GET /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c? 200 25ms","method":"GET","requestID":"33ea85d0-178d-11ef-9e06-b78ba83e54a6","responseTime":25,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.388966,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d43beea1-51a6-4865-9906-55ec9858441a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.09298} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","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 172ms","method":"POST","requestID":"8d8063406e94ea0fa444cc7c2a949b3d","responseTime":172,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"21/May/2024:16:14:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"785","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d8063406e94ea0fa444cc7c2a949b3d"} 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":"33ee7d70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd78d84e-72f1-44b2-a43f-be5765e226ea","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.102436} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.076647,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3MH0.KqHF50JXtbam0tIRsDxcCxnD30FOK83-H-NUPkp7eME","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dbbcbd601c28e86a25bf1ca4fcfb2d52","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","rebac_allow":false,"scope_allow":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":"33ef8ee0-178d-11ef-9e06-b78ba83e54a6"},"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/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling 200 27ms","method":"POST","requestID":"33ee7d70-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling 200 21ms","method":"POST","requestID":"33ef8ee0-178d-11ef-9e06-b78ba83e54a6","responseTime":21,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.975921,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308070,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3MH0.KqHF50JXtbam0tIRsDxcCxnD30FOK83-H-NUPkp7eME"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbbcbd601c28e86a25bf1ca4fcfb2d52"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8ab2f06a-d4f2-4553-8342-5817f7f14c8d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.1238906} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.250693060Z"}]},"request_id":"5cd915d6-a8ef-42c8-82d7-1a6bfbe0b4d0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.124565} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.453499,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","rebac_allow":false,"scope_allow":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":"33f31150-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbbcbd601c28e86a25bf1ca4fcfb2d52"},"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/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling 200 13ms","method":"POST","requestID":"33f31150-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dbbcbd601c28e86a25bf1ca4fcfb2d52"} device-1 | {"level":"info","message":"GET /devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623? 200 20ms","method":"GET","requestID":"dbbcbd601c28e86a25bf1ca4fcfb2d52","responseTime":20,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"98c18329-3ed7-4c0c-b558-a8c818026a1a"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"18431a0a-f36a-49f9-a8c1-e56c8b3579d0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"2e62d704-3f6b-4316-850a-3eda017988d9"}]},"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/c3d789ce-27c9-4473-9de2-32e58db22a6c"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3MH0.KqHF50JXtbam0tIRsDxcCxnD30FOK83-H-NUPkp7eME","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d87997e3a98e26d86ee67e20ee4d79b5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.91917,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308069,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA2OX0.Gb9kly7E2NB6f-Ww1vExUidOKNiMBHvupqG8EJ8zpmg"} 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":"33f58250-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48178","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.801738,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308070,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3MH0.KqHF50JXtbam0tIRsDxcCxnD30FOK83-H-NUPkp7eME"} 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":"d87997e3a98e26d86ee67e20ee4d79b5"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:29.296721729Z"}]},"request_id":"c6e044b9-c2d6-4fad-9245-d506ee8d6744","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.1426778} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d87997e3a98e26d86ee67e20ee4d79b5"},"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":"21/May/2024:16:14:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d87997e3a98e26d86ee67e20ee4d79b5"} device-1 | {"level":"info","message":"GET /devices/c3d789ce-27c9-4473-9de2-32e58db22a6c? 200 10ms","method":"GET","requestID":"d87997e3a98e26d86ee67e20ee4d79b5","responseTime":10,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"1ba01209-210d-4c1c-b0dc-2887fa2ed2d9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.1472487} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"beb0acd2-3f4b-43ac-b8f1-5ca01b51b4a7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.1474164} 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":"33f58250-178d-11ef-9e06-b78ba83e54a6"},"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/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4'"} 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":"33f58250-178d-11ef-9e06-b78ba83e54a6","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/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2fb21f6e-5e23-456d-8228-de255de4c028","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.2080765} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.322176,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","rebac_allow":false,"scope_allow":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":"340030b0-178d-11ef-9e06-b78ba83e54a6"},"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/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling 200 9ms","method":"POST","requestID":"340030b0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"407a3105-14f3-46b7-8a4b-0d724a308c01","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308070.218889} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.360304,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","rebac_allow":false,"scope_allow":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":"3401de60-178d-11ef-9e06-b78ba83e54a6"},"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/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling 200 9ms","method":"POST","requestID":"3401de60-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling"} device-1 | {"data":{"peerconnection":"359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","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/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","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":"a568306d113afb7bb18e096996c85385","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/c3d789ce-27c9-4473-9de2-32e58db22a6c"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"a568306d113afb7bb18e096996c85385","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"a568306d113afb7bb18e096996c85385"} device-1 | {"data":{"peerconnection":"359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","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/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","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":"9cfc29d3da3f5b0b3b792e02669789aa","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/c3d789ce-27c9-4473-9de2-32e58db22a6c"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40d70748-7dc8-47c9-8b62-4be7bee726c6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.2968497} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.388366,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","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":"353ea420-178d-11ef-9e06-b78ba83e54a6"},"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/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4 200 12ms","method":"GET","requestID":"353ea420-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"9cfc29d3da3f5b0b3b792e02669789aa","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"9cfc29d3da3f5b0b3b792e02669789aa"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5e06be47-cd4f-4ad1-a50b-9e3530052194","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.3323534} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.517601,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","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/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling 200 11ms","method":"POST","requestID":"35442260-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling"} 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":"35442260-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"03c271d1-0507-42f2-8325-423e69d0ae4e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.343673} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.532832,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","rebac_allow":false,"scope_allow":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":"35461e30-178d-11ef-9e06-b78ba83e54a6"},"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/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling 200 9ms","method":"POST","requestID":"35461e30-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"24ecb19da3ce852248026782190228c2","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.121381,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308072,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s"} 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":"24ecb19da3ce852248026782190228c2"},"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/5cdc2731-9eb1-451c-945f-5e6176da700d"} gateway-1 | {"time_local":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5cdc2731-9eb1-451c-945f-5e6176da700d HTTP/1.1","status": "200","body_bytes_sent":"858","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"24ecb19da3ce852248026782190228c2"} experiment-1 | {"level":"info","message":"GET /experiments/5cdc2731-9eb1-451c-945f-5e6176da700d 200 15ms","method":"GET","requestID":"24ecb19da3ce852248026782190228c2","responseTime":15,"status":200,"url":"/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b30f27413be72f413e25230cc81a8b7c","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.571922,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308072,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s"} 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":"b30f27413be72f413e25230cc81a8b7c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.316128,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308072,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s"} 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":"35636a30-178d-11ef-9e06-b78ba83e54a6"},"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/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","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":"4900c04665127c8c3d2537c612a2c716","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4"}}},"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":"c473fcba0d6784e82166d899fafc8b60","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F359cb4fe-337c-4674-ab5a-fbd1cc12c1e4': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"5d88ee69-9156-4922-9e26-fc69e1c9559d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.559301} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee83ff6f-c543-4df5-b506-b62389ef7735","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.559621} 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/c3d789ce-27c9-4473-9de2-32e58db22a6c"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4"}}},"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":"35636a30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} device-1 | {"data":{"peerconnection":"359cb4fe-337c-4674-ab5a-fbd1cc12c1e4","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/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4 204 55ms","method":"DELETE","requestID":"35636a30-178d-11ef-9e06-b78ba83e54a6","responseTime":55,"status":204,"url":"/peerconnections/359cb4fe-337c-4674-ab5a-fbd1cc12c1e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3d789ce-27c9-4473-9de2-32e58db22a6c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d7518caf-fa1f-4bcb-aaa3-d47d3265fec1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.616567} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.792746,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c","object_type":"device","rebac_allow":false,"scope_allow":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":"356f7820-178d-11ef-9e06-b78ba83e54a6"},"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/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling 200 13ms","method":"POST","requestID":"356f7820-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/c3d789ce-27c9-4473-9de2-32e58db22a6c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5cdc2731-9eb1-451c-945f-5e6176da700d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5cdc2731-9eb1-451c-945f-5e6176da700d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"5953459e-3e1e-4c07-a34d-8c681ed05dad","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.6272912} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ccb51a6a-d4ee-4135-aa0c-76d681ec758c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.627489} 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":"b30f27413be72f413e25230cc81a8b7c"},"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:47510","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77dbb4dc-9bd6-4326-90a2-83280cfe0623","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1fb2f84e-ea02-49a2-8b7a-8fa1d0b15fa2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.6331902} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.1538,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623","object_type":"device","rebac_allow":false,"scope_allow":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":"3571e920-178d-11ef-9e06-b78ba83e54a6"},"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/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling 200 15ms","method":"POST","requestID":"3571e920-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"} gateway-1 | {"time_local":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5cdc2731-9eb1-451c-945f-5e6176da700d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b30f27413be72f413e25230cc81a8b7c"} gateway-1 | {"time_local":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2490","request_time":"2.825","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"96eb1b3270eb77ddf30d90f8661e674e"} gateway-1 | {"time_local":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2490","request_time":"2.835","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ce089cd11e356903ed904cd605b08302"} experiment-1 | {"level":"info","message":"DELETE /experiments/5cdc2731-9eb1-451c-945f-5e6176da700d 204 178ms","method":"DELETE","requestID":"b30f27413be72f413e25230cc81a8b7c","responseTime":178,"status":204,"url":"/experiments/5cdc2731-9eb1-451c-945f-5e6176da700d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"4900c04665127c8c3d2537c612a2c716","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.142","http_referrer":"","http_user_agent":"node-fetch","requestID":"4900c04665127c8c3d2537c612a2c716"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"c473fcba0d6784e82166d899fafc8b60","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.143","http_referrer":"","http_user_agent":"node-fetch","requestID":"c473fcba0d6784e82166d899fafc8b60"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aa4bcce2fc9af60028ae2b5c5dbaecb5","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/c3d789ce-27c9-4473-9de2-32e58db22a6c' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.979717,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308072,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/77dbb4dc-9bd6-4326-90a2-83280cfe0623' 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":"aa4bcce2fc9af60028ae2b5c5dbaecb5"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e0b377ff-5bf9-4907-9e64-3d370c4b3742","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.7187219} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa4bcce2fc9af60028ae2b5c5dbaecb5"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b540821c-966b-48f5-a557-732dc8d3d65b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.7241876} 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":"aa4bcce2fc9af60028ae2b5c5dbaecb5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d4224dd8-d749-4d4c-a896-545ba2c6e3aa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.7362576} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"498e9093-de8c-44eb-a0de-668d95bc6238","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.7365592} 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":"aa4bcce2fc9af60028ae2b5c5dbaecb5"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.736235155Z"}]},"request_id":"401e0db8-d5af-488c-8753-2087aa7e1ecb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.7416098} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aa4bcce2fc9af60028ae2b5c5dbaecb5"},"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":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aa4bcce2fc9af60028ae2b5c5dbaecb5"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"aa4bcce2fc9af60028ae2b5c5dbaecb5","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6c8d8e722175ca341061ed837b51dcd6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.78611,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308072,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3Mn0.71sNxR5z9TSeNiyiWatc9lAf020M-lT_aLfMmfB_f1s"} 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":"6c8d8e722175ca341061ed837b51dcd6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3d8c1153-d90b-4224-969a-572954b5c0ac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.7704902} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6c8d8e722175ca341061ed837b51dcd6"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79454396-35d7-4d85-8578-73ccc622d17e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.776176} 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":"6c8d8e722175ca341061ed837b51dcd6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"5dadcbcc-5dcb-4ffa-9633-f65eb3bfd801","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.7856672} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68882c74-dfd9-481b-b3bd-b933eae6fc1c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.7859223} 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":"6c8d8e722175ca341061ed837b51dcd6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.785646821Z"}]},"request_id":"6e189b82-df03-4778-b01e-2590476c9244","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308072.790419} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6c8d8e722175ca341061ed837b51dcd6"},"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":"21/May/2024:16:14:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6c8d8e722175ca341061ed837b51dcd6"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"6c8d8e722175ca341061ed837b51dcd6","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d8345eac2eb8f50feaddad78f4278209","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/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":"d8345eac2eb8f50feaddad78f4278209"} device-1 | {"level":"info","message":"OPTIONS /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/websocket 200 2ms","method":"OPTIONS","requestID":"d8345eac2eb8f50feaddad78f4278209","responseTime":2,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7e64ee55b99548e34b74e4aedd00a23b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.120059,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7e64ee55b99548e34b74e4aedd00a23b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e86d320bf1139dddb47000d4a8d838c4","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/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":"e86d320bf1139dddb47000d4a8d838c4"} device-1 | {"level":"info","message":"OPTIONS /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/websocket 200 1ms","method":"OPTIONS","requestID":"e86d320bf1139dddb47000d4a8d838c4","responseTime":1,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bb7bbb96dab22727894d2ffe6b0832fc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:34Z"} gateway-1 | {"time_local":"21/May/2024:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/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":"7e64ee55b99548e34b74e4aedd00a23b"} device-1 | {"level":"info","message":"POST /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/websocket 200 30ms","method":"POST","requestID":"7e64ee55b99548e34b74e4aedd00a23b","responseTime":30,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/websocket"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.498676,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} 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":"bb7bbb96dab22727894d2ffe6b0832fc"},"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":"21/May/2024:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bb7bbb96dab22727894d2ffe6b0832fc"} device-1 | {"level":"info","message":"POST /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/websocket 200 21ms","method":"POST","requestID":"bb7bbb96dab22727894d2ffe6b0832fc","responseTime":21,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"dc53db740d3d386de7229226e519751e","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.192533,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} 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":"dc53db740d3d386de7229226e519751e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.736235155Z"}]},"request_id":"c58223b0-8804-4eed-9bfb-84de9c353b3d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308074.8335795} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc53db740d3d386de7229226e519751e"},"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":"21/May/2024:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0? 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":"dc53db740d3d386de7229226e519751e"} device-1 | {"level":"info","message":"GET /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0? 200 14ms","method":"GET","requestID":"dc53db740d3d386de7229226e519751e","responseTime":14,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5133a27068975f29be54cbcd030d6189","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.068139,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} 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":"5133a27068975f29be54cbcd030d6189"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.785646821Z"}]},"request_id":"be677926-a6f0-4360-87d1-077b1aad5d43","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308074.855295} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5133a27068975f29be54cbcd030d6189"},"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/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274? 200 14ms","method":"GET","requestID":"5133a27068975f29be54cbcd030d6189","responseTime":14,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274?"} gateway-1 | {"time_local":"21/May/2024:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274? 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":"5133a27068975f29be54cbcd030d6189"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7cbf02e34d481c434622289fc0fe678b","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:47510","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.19781,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} 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":"7cbf02e34d481c434622289fc0fe678b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"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:47510","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.605324,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"36d067b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.808283,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} 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":"36d0b5d0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.736235155Z"}]},"request_id":"57a071ac-6889-4c22-af24-fb27d8161246","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308074.9349718} 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":"36d067b0-178d-11ef-9e06-b78ba83e54a6"},"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0? 200 18ms","method":"GET","requestID":"36d067b0-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.785646821Z"}]},"request_id":"85df4a3a-34db-40bc-8bf4-bfcad3d417a4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308074.9410946} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"36d0b5d0-178d-11ef-9e06-b78ba83e54a6"},"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/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274? 200 19ms","method":"GET","requestID":"36d0b5d0-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"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/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.994017,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"36dbd960-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.993545,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} 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":"36dc2780-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:50062","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.785646821Z"}]},"request_id":"f65b4a64-b340-4ab1-951a-b46d29112873","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0155957} 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":"36dc2780-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.736235155Z"}]},"request_id":"61aee20e-4342-4763-a80f-4e71f5144971","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0177925} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1df3c71f-e53e-4504-8468-3bc3cd8bd6c3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0184176} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274? 200 22ms","method":"GET","requestID":"36dc2780-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274?"} 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":"36dbd960-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3d28075a-9d56-4c26-bce3-0d8668f92356#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3d28075a-9d56-4c26-bce3-0d8668f92356","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"dabddd9f-d4cd-4810-a6f4-83d78f195a83","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0221925} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32ea46e6-1a72-4e60-a8ac-41065bf95c4c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.022635} authorization-1 | {"client_addr":"127.0.0.1:50062","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.249558,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"36dc75a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":19}} 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":"7cbf02e34d481c434622289fc0fe678b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0? 200 31ms","method":"GET","requestID":"36dbd960-178d-11ef-9e06-b78ba83e54a6","responseTime":31,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling 200 30ms","method":"POST","requestID":"36dc75a0-178d-11ef-9e06-b78ba83e54a6","responseTime":30,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5544b55f-5c4e-4108-abc9-4232fc84a805","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0413945} gateway-1 | {"time_local":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.180","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7cbf02e34d481c434622289fc0fe678b"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.853819,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} experiment-1 | {"level":"info","message":"POST /experiments? 201 174ms","method":"POST","requestID":"7cbf02e34d481c434622289fc0fe678b","responseTime":174,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","rebac_allow":false,"scope_allow":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":"36e157a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cc8bee5a-9a58-42bb-a6eb-32d284bf682c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0435061} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.932706,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","rebac_allow":false,"scope_allow":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":"36e1a5c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"80f9510cc0ca5fd423d5ea13b857ab07","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling 200 16ms","method":"POST","requestID":"36e157a0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling 200 20ms","method":"POST","requestID":"36e1a5c0-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.485929,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308075,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80f9510cc0ca5fd423d5ea13b857ab07"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"49bb2074-b65b-46a5-8d6f-801ddf2d3647","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.06052} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.591029,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","rebac_allow":false,"scope_allow":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":"36e43dd0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.736235155Z"}]},"request_id":"e6126cb3-3d30-4d9e-a0d6-1dcb5d0c3dd7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.063487} 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":"80f9510cc0ca5fd423d5ea13b857ab07"},"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/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling 200 16ms","method":"POST","requestID":"36e43dd0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0? 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":"80f9510cc0ca5fd423d5ea13b857ab07"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Attempting to create peerconnections for experiment"} device-1 | {"level":"info","message":"GET /devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0? 200 20ms","method":"GET","requestID":"80f9510cc0ca5fd423d5ea13b857ab07","responseTime":20,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"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":"2c2a9638-ede4-4ebb-8352-b9a141aff40b"},{"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":"4b692a07-88e6-47b9-815d-71ae1efaf2dd"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"cdebba1f-c409-4cd1-9890-7afd64df1212"}]},"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/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274"},{"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"01121f32f3ac979dae5acffb25a4022e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.888441,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308074,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NH0.J4IWPCMb8_CFGpHsU1vta3TFn0SkOTooijtA5EIu_E8"} 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":"36e77220-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.874769,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308075,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01121f32f3ac979dae5acffb25a4022e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:32.785646821Z"}]},"request_id":"8cd9b9a6-f1f5-4ac7-a763-b7e6a16eec1b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0866954} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"01121f32f3ac979dae5acffb25a4022e"},"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":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274? 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":"01121f32f3ac979dae5acffb25a4022e"} device-1 | {"level":"info","message":"GET /devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274? 200 15ms","method":"GET","requestID":"01121f32f3ac979dae5acffb25a4022e","responseTime":15,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"64c1c08b-c92b-45b0-b9ae-1951d4846d1f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0926347} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0a1192a-d641-47cd-950c-ce185f158a6b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.0930195} 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":"36e77220-178d-11ef-9e06-b78ba83e54a6"},"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/ce6ee499-94cb-4568-9234-5cfe2b1aea53'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53'"} 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 50ms","method":"POST","requestID":"36e77220-178d-11ef-9e06-b78ba83e54a6","responseTime":50,"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/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8a7f6d18-9604-47b0-af6c-b74d8a1cc3db","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.1554952} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.020806,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","rebac_allow":false,"scope_allow":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":"36f30ae0-178d-11ef-9e06-b78ba83e54a6"},"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling 200 10ms","method":"POST","requestID":"36f30ae0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"262d6278-64d6-4d48-9ef4-45d667d47a75","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.1682937} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.844744,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","rebac_allow":false,"scope_allow":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":"36f506b0-178d-11ef-9e06-b78ba83e54a6"},"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/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling 200 15ms","method":"POST","requestID":"36f506b0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ce6ee499-94cb-4568-9234-5cfe2b1aea53","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1660fd69688c057061e1afe45eedd79d","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":"new","url":"http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274"},{"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"1660fd69688c057061e1afe45eedd79d","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"1660fd69688c057061e1afe45eedd79d"} device-1 | {"data":{"peerconnection":"ce6ee499-94cb-4568-9234-5cfe2b1aea53","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ce6ee499-94cb-4568-9234-5cfe2b1aea53","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/ce6ee499-94cb-4568-9234-5cfe2b1aea53' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ce6ee499-94cb-4568-9234-5cfe2b1aea53","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":"3104308ee5131a65e3ea44922b1d4fd3","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274"},{"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fce6ee499-94cb-4568-9234-5cfe2b1aea53","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a55d57b1-8816-4ab3-be11-111b21d785ae","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.2601564} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.273691,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53","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":"37031070-178d-11ef-9e06-b78ba83e54a6"},"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/ce6ee499-94cb-4568-9234-5cfe2b1aea53 200 9ms","method":"GET","requestID":"37031070-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"3104308ee5131a65e3ea44922b1d4fd3","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"3104308ee5131a65e3ea44922b1d4fd3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e1bfa27f-f8ed-4160-9633-8c69c14c7c50","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.2866004} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.204049,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","rebac_allow":false,"scope_allow":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":"37072f20-178d-11ef-9e06-b78ba83e54a6"},"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/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling 200 9ms","method":"POST","requestID":"37072f20-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bbfe70df-9083-47d8-ab41-fdc0543d57f6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.297337} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.344757,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","rebac_allow":false,"scope_allow":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":"3708dcd0-178d-11ef-9e06-b78ba83e54a6"},"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling 200 8ms","method":"POST","requestID":"3708dcd0-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"00484173c62b23b5026f18a351c83c00","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.653074,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308075,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U"} 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":"00484173c62b23b5026f18a351c83c00"},"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/3d28075a-9d56-4c26-bce3-0d8668f92356"} gateway-1 | {"time_local":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3d28075a-9d56-4c26-bce3-0d8668f92356 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"00484173c62b23b5026f18a351c83c00"} experiment-1 | {"level":"info","message":"GET /experiments/3d28075a-9d56-4c26-bce3-0d8668f92356 200 10ms","method":"GET","requestID":"00484173c62b23b5026f18a351c83c00","responseTime":10,"status":200,"url":"/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1862e7574c6dfabb3b8e98d278186922","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.729098,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308075,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U"} 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":"1862e7574c6dfabb3b8e98d278186922"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.414104,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308075,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U"} 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":"371008c0-178d-11ef-9e06-b78ba83e54a6"},"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/ce6ee499-94cb-4568-9234-5cfe2b1aea53' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ce6ee499-94cb-4568-9234-5cfe2b1aea53","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fce6ee499-94cb-4568-9234-5cfe2b1aea53': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fce6ee499-94cb-4568-9234-5cfe2b1aea53","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"ad9a4d41-5543-4f76-a90b-798d42ccef30","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.358921} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99417741-064b-4104-aad5-7a480afca880","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.35919} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3fc8a96603a68712ca735e09d212775b","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":"371008c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274"},{"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53"}}},"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":"ab9927e568b85aa05a41ba7eeda8a7f8","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/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274"},{"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ce6ee499-94cb-4568-9234-5cfe2b1aea53","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/ce6ee499-94cb-4568-9234-5cfe2b1aea53 204 54ms","method":"DELETE","requestID":"371008c0-178d-11ef-9e06-b78ba83e54a6","responseTime":54,"status":204,"url":"/peerconnections/ce6ee499-94cb-4568-9234-5cfe2b1aea53"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a34c9d27-075e-4112-a4ed-c51e7f9f4e4a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.4214146} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.628755,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274","object_type":"device","rebac_allow":false,"scope_allow":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":"371b0540-178d-11ef-9e06-b78ba83e54a6"},"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/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling 200 16ms","method":"POST","requestID":"371b0540-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3d28075a-9d56-4c26-bce3-0d8668f92356': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3d28075a-9d56-4c26-bce3-0d8668f92356","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"83c955ae-40cd-404d-9239-0221b572de3b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.4320314} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a30911c9-c6c8-4427-9643-a3af200860f2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.432395} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 23ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1862e7574c6dfabb3b8e98d278186922"},"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:47510","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2012e87-7a0f-4818-b8f0-45c5723c7dd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"05e94133-6f35-4957-afc9-0698dfdc1fe3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.4390864} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.823966,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0","object_type":"device","rebac_allow":false,"scope_allow":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":"371e3990-178d-11ef-9e06-b78ba83e54a6"},"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling 200 12ms","method":"POST","requestID":"371e3990-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/b2012e87-7a0f-4818-b8f0-45c5723c7dd0/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"} gateway-1 | {"time_local":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3d28075a-9d56-4c26-bce3-0d8668f92356 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1862e7574c6dfabb3b8e98d278186922"} experiment-1 | {"level":"info","message":"DELETE /experiments/3d28075a-9d56-4c26-bce3-0d8668f92356 204 174ms","method":"DELETE","requestID":"1862e7574c6dfabb3b8e98d278186922","responseTime":174,"status":204,"url":"/experiments/3d28075a-9d56-4c26-bce3-0d8668f92356"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 147ms","method":"POST","requestID":"3fc8a96603a68712ca735e09d212775b","responseTime":147,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"3fc8a96603a68712ca735e09d212775b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 147ms","method":"POST","requestID":"ab9927e568b85aa05a41ba7eeda8a7f8","responseTime":147,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"ab9927e568b85aa05a41ba7eeda8a7f8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"194e58689ed9a3f2bc986032636643c2","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2886","request_time":"0.712","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d8cc0b8ddb68c1c5869ef7fb14a2f8a5"} gateway-1 | {"time_local":"21/May/2024:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2888","request_time":"0.731","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"95b942f82770776298f47ba3a3eed43d"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8294d9b2-ad7f-4ba4-b320-0df5ef7f4274' closed"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.784561,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308075,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U"} 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":"194e58689ed9a3f2bc986032636643c2"},"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/b2012e87-7a0f-4818-b8f0-45c5723c7dd0' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ffbbfbfe-7588-49e5-9cfa-8505d22b9c40","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.5372357} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"194e58689ed9a3f2bc986032636643c2"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1c953643-9b17-46d1-8bfc-f0431b058a58","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.5423708} 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":"194e58689ed9a3f2bc986032636643c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"22bc1534-2e48-4bd2-a57c-15b295e5cc3c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.5553} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"803d161e-37a5-4758-a039-b85829dfad84","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.5554724} 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":"194e58689ed9a3f2bc986032636643c2"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.555270421Z"}]},"request_id":"f821dc54-d10a-4525-979a-1f795138ece1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.560373} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"194e58689ed9a3f2bc986032636643c2"},"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":"194e58689ed9a3f2bc986032636643c2","responseTime":51,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:14: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.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"194e58689ed9a3f2bc986032636643c2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3baa6e01a18ecd6a7607460dffdb2742","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.948905,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308075,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3NX0.cQFfQhuWurKWx0gl-kmHMQHkvFj1xQjAD-gJr2abw3U"} 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":"3baa6e01a18ecd6a7607460dffdb2742"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e13dc15b-945e-4f0f-9d00-59b7beb8a7e9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.5893078} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3baa6e01a18ecd6a7607460dffdb2742"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"912aae12-58f5-4a1b-96d9-cbf9e2990b04","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.595096} 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":"3baa6e01a18ecd6a7607460dffdb2742"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"0b9555b6-81c5-416d-9921-4dd3d408dfce","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.6060157} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"936532d9-93db-48f0-9566-0cc618ca68d2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.6063528} 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":"3baa6e01a18ecd6a7607460dffdb2742"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.605993640Z"}]},"request_id":"a739741f-50f2-4e70-b171-b76fbf03ad67","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308075.6108434} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3baa6e01a18ecd6a7607460dffdb2742"},"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":"3baa6e01a18ecd6a7607460dffdb2742","responseTime":45,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:14: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.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3baa6e01a18ecd6a7607460dffdb2742"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"353f9f516430c9428bb78120167dca9d","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/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":"353f9f516430c9428bb78120167dca9d"} device-1 | {"level":"info","message":"OPTIONS /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/websocket 200 1ms","method":"OPTIONS","requestID":"353f9f516430c9428bb78120167dca9d","responseTime":1,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5a614c7a5c3b8fb1bcdd36dc06ebb0c8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.328793,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} 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":"5a614c7a5c3b8fb1bcdd36dc06ebb0c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6bb8929ad307f04c548d87b080ff7ef3","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/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":"6bb8929ad307f04c548d87b080ff7ef3"} device-1 | {"level":"info","message":"OPTIONS /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/websocket 200 1ms","method":"OPTIONS","requestID":"6bb8929ad307f04c548d87b080ff7ef3","responseTime":1,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"05c6a9847933f003a611e4ce5febd20e","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.767748,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} 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":"05c6a9847933f003a611e4ce5febd20e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/websocket 200 38ms","method":"POST","requestID":"5a614c7a5c3b8fb1bcdd36dc06ebb0c8","responseTime":38,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/websocket"} gateway-1 | {"time_local":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5a614c7a5c3b8fb1bcdd36dc06ebb0c8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"05c6a9847933f003a611e4ce5febd20e"} device-1 | {"level":"info","message":"POST /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/websocket 200 23ms","method":"POST","requestID":"05c6a9847933f003a611e4ce5febd20e","responseTime":23,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"71412a7cfbd8733d69d13a77cd2dbdd0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.146011,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"71412a7cfbd8733d69d13a77cd2dbdd0"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.555270421Z"}]},"request_id":"5bc68b0f-1086-4d84-9f49-3afb21d3b9df","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.6216688} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"71412a7cfbd8733d69d13a77cd2dbdd0"},"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/b43b4702-6155-4f1f-8088-c82b1d96f84a? 200 17ms","method":"GET","requestID":"71412a7cfbd8733d69d13a77cd2dbdd0","responseTime":17,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a?"} gateway-1 | {"time_local":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a? 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":"71412a7cfbd8733d69d13a77cd2dbdd0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"683ab9fd182b34f05e940045d37e2d2b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.81646,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"683ab9fd182b34f05e940045d37e2d2b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.605993640Z"}]},"request_id":"d0ef9561-e00e-4ca0-a722-831a45207abb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.6448076} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"683ab9fd182b34f05e940045d37e2d2b"},"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/45571fc0-460a-4f6c-9184-9d0dbd0edb7d? 200 16ms","method":"GET","requestID":"683ab9fd182b34f05e940045d37e2d2b","responseTime":16,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d?"} gateway-1 | {"time_local":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d? 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":"683ab9fd182b34f05e940045d37e2d2b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"14e31f996ebb09f71cacf032d4fa3eae","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:47510","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.167896,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} 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":"14e31f996ebb09f71cacf032d4fa3eae"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"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:47510","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.104791,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"387bf4d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.737132,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"387c42f0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.555270421Z"}]},"request_id":"9c80380b-1803-4699-b1e2-6dfe7e4f6646","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.7382078} 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":"387bf4d0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.605993640Z"}]},"request_id":"d1659cae-052e-4a50-8f8a-1be622ac8e85","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.7396934} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"387c42f0-178d-11ef-9e06-b78ba83e54a6"},"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/b43b4702-6155-4f1f-8088-c82b1d96f84a? 200 22ms","method":"GET","requestID":"387bf4d0-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d? 200 22ms","method":"GET","requestID":"387c42f0-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"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:47510","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.372257,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"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":"38889f00-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.177055,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} 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":"3888ed20-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.817718,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8081e57f-2d04-4b2f-af2d-c6a4731cb2d9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8243637} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","rebac_allow":false,"scope_allow":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":"38896250-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.555270421Z"}]},"request_id":"4aa5b4de-285f-4883-b191-ffe7f6ed68f1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8285959} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.605993640Z"}]},"request_id":"9a379e3c-569f-4258-bb1e-48c3aca92a72","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8308508} 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":"38889f00-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"level":"info","message":"POST /relations/query 200 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":"3888ed20-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling 200 23ms","method":"POST","requestID":"38896250-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F812c70fb-ad12-4f03-a9d3-110090bb17b6#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F812c70fb-ad12-4f03-a9d3-110090bb17b6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"0839eaea-b7bd-4d9c-8768-8d02660dcc70","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8384397} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a831652a-7c5f-494a-85d7-bdf947ccbcb7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8388178} 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":"14e31f996ebb09f71cacf032d4fa3eae"},"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:47510","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} device-1 | {"level":"info","message":"GET /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a? 200 35ms","method":"GET","requestID":"38889f00-178d-11ef-9e06-b78ba83e54a6","responseTime":35,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d? 200 35ms","method":"GET","requestID":"3888ed20-178d-11ef-9e06-b78ba83e54a6","responseTime":35,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cbfae200-ed04-42e5-ab15-d4bc278c8cb9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8451946} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.152338,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","rebac_allow":false,"scope_allow":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":"388d59f0-178d-11ef-9e06-b78ba83e54a6"},"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/812c70fb-ad12-4f03-a9d3-110090bb17b6","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.198","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"14e31f996ebb09f71cacf032d4fa3eae"} device-1 | {"level":"info","message":"POST /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling 200 13ms","method":"POST","requestID":"388d59f0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling"} experiment-1 | {"level":"info","message":"POST /experiments? 201 192ms","method":"POST","requestID":"14e31f996ebb09f71cacf032d4fa3eae","responseTime":192,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3eac1f21-7300-4df2-8d39-3022354acfb9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.854857} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.503928,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a6b958a88707a5fd91c15ba8ee1b0ceb","responseTime":4,"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":"388f07a0-178d-11ef-9e06-b78ba83e54a6"},"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:47510","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} device-1 | {"level":"info","message":"POST /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling 200 12ms","method":"POST","requestID":"388f07a0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.960773,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a6b958a88707a5fd91c15ba8ee1b0ceb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.555270421Z"}]},"request_id":"185de13c-6cd2-4aba-b03f-8ee6c12168d4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.868146} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a6b958a88707a5fd91c15ba8ee1b0ceb"},"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:47510","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1b176642-8501-4412-b3cc-14cb5c8ffebc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8709714} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.607106,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a? 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":"a6b958a88707a5fd91c15ba8ee1b0ceb"} 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":"389178a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"GET /devices/b43b4702-6155-4f1f-8088-c82b1d96f84a? 200 14ms","method":"GET","requestID":"a6b958a88707a5fd91c15ba8ee1b0ceb","responseTime":14,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling 200 10ms","method":"POST","requestID":"389178a0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Building connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg","level":"info","message":"auth send jwt"} 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":"85350af5-b233-4a15-ad6b-6c904ac59d2e"},{"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":"0ce7edaa-d89b-4357-b303-2a1dd79a3de4"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"2b15ca55-297c-4522-b0eb-4588e104e067"}]},"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/45571fc0-460a-4f6c-9184-9d0dbd0edb7d"},{"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/b43b4702-6155-4f1f-8088-c82b1d96f84a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"73068afc5b1c853f8a3da8ec2694bf33","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.719015,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} 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":"73068afc5b1c853f8a3da8ec2694bf33"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.778021,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308077,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3N30.tSSFrmoxVaLHgiqyUnbxUjwcc3p6q2RYoWDaYT-y4hg"} 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":"38939b80-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:35.605993640Z"}]},"request_id":"c460b98b-6bf6-44cb-8290-a59366e633fe","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8869855} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"73068afc5b1c853f8a3da8ec2694bf33"},"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":"21/May/2024:16:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d? 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":"73068afc5b1c853f8a3da8ec2694bf33"} device-1 | {"level":"info","message":"GET /devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d? 200 15ms","method":"GET","requestID":"73068afc5b1c853f8a3da8ec2694bf33","responseTime":15,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"942d7ecf-2177-4f23-a57f-e35e6d85255a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.8951144} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"adc836c1-b41f-4248-b96a-20fe8b9fd659","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.895311} 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":"38939b80-178d-11ef-9e06-b78ba83e54a6"},"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/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"38939b80-178d-11ef-9e06-b78ba83e54a6","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"927b5a65-e188-4e67-aae8-e15040b4e653","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.9646373} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.384952,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","rebac_allow":false,"scope_allow":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":"389fa970-178d-11ef-9e06-b78ba83e54a6"},"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/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling 200 10ms","method":"POST","requestID":"389fa970-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"80c2fbe7-ca66-4f77-80f4-3121cfdb3946","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308077.9771342} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.918734,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","rebac_allow":false,"scope_allow":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":"38a17e30-178d-11ef-9e06-b78ba83e54a6"},"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/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling 200 11ms","method":"POST","requestID":"38a17e30-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7e77f646606bf80968076e664ba6ba08","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":"new","url":"http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d"},{"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/b43b4702-6155-4f1f-8088-c82b1d96f84a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"7e77f646606bf80968076e664ba6ba08","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"7e77f646606bf80968076e664ba6ba08"} device-1 | {"data":{"peerconnection":"246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","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/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","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":"e8fb10c937df5b48c7eb78b8a8bba9a5","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d"},{"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/b43b4702-6155-4f1f-8088-c82b1d96f84a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea17c6bd-df21-4026-860b-203e2aacfdc2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.061124} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.164475,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","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":"38ae7680-178d-11ef-9e06-b78ba83e54a6"},"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/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83 200 9ms","method":"GET","requestID":"38ae7680-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"e8fb10c937df5b48c7eb78b8a8bba9a5","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"e8fb10c937df5b48c7eb78b8a8bba9a5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bcecc160-819b-454c-ba1f-86c72f4808ad","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.0844564} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.161991,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","rebac_allow":false,"scope_allow":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":"38b1f8f0-178d-11ef-9e06-b78ba83e54a6"},"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/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling 200 9ms","method":"POST","requestID":"38b1f8f0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c40de93-16d0-48d5-8c02-60b78f24c1d2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.0943608} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.125162,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","rebac_allow":false,"scope_allow":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":"38b3a6a0-178d-11ef-9e06-b78ba83e54a6"},"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/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling 200 8ms","method":"POST","requestID":"38b3a6a0-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ecfc6583cc96cb2e7c956e6c5710c484","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.718412,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308078,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ecfc6583cc96cb2e7c956e6c5710c484"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ecfc6583cc96cb2e7c956e6c5710c484"} experiment-1 | {"level":"info","message":"GET /experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6 200 9ms","method":"GET","requestID":"ecfc6583cc96cb2e7c956e6c5710c484","responseTime":9,"status":200,"url":"/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b16a31c06f637805b93fa9d461ebb4df","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.705133,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308078,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b16a31c06f637805b93fa9d461ebb4df"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.690777,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308078,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38bc5930-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F246e83c8-e43c-4f4c-ae77-7fcc0e44dc83': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"084c25ab-682a-4648-b3ee-3f74b8059aac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.161551} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9c7e2771-c85a-4c39-a4c5-d887ac47801e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.162136} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a7e9e018ab3c57f0df80674d1d130768","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"912c0ef138dfb1ac42abb1c309c0fbb3","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d"},{"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/b43b4702-6155-4f1f-8088-c82b1d96f84a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83"}}},"level":"info","message":"received a callback"} 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":"38bc5930-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-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/45571fc0-460a-4f6c-9184-9d0dbd0edb7d"},{"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/b43b4702-6155-4f1f-8088-c82b1d96f84a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"246e83c8-e43c-4f4c-ae77-7fcc0e44dc83","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/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83 204 43ms","method":"DELETE","requestID":"38bc5930-178d-11ef-9e06-b78ba83e54a6","responseTime":43,"status":204,"url":"/peerconnections/246e83c8-e43c-4f4c-ae77-7fcc0e44dc83"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F45571fc0-460a-4f6c-9184-9d0dbd0edb7d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"edfaa9c9-9310-4960-9e9d-7eb4ac81e62d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.209874} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.541065,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d","object_type":"device","rebac_allow":false,"scope_allow":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":"38c532d0-178d-11ef-9e06-b78ba83e54a6"},"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/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling 200 9ms","method":"POST","requestID":"38c532d0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/45571fc0-460a-4f6c-9184-9d0dbd0edb7d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F812c70fb-ad12-4f03-a9d3-110090bb17b6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F812c70fb-ad12-4f03-a9d3-110090bb17b6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"e925cf7f-6d22-400d-8317-c1704b8e490e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.218055} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b6a2128e-df5f-49b4-9e2e-d4ad5c233966","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.2183843} 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":"b16a31c06f637805b93fa9d461ebb4df"},"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:47510","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.81796,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb43b4702-6155-4f1f-8088-c82b1d96f84a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a555185b-9d78-45fb-8633-f681e1544808","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.2221112} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a","object_type":"device","rebac_allow":false,"scope_allow":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":"38c6e080-178d-11ef-9e06-b78ba83e54a6"},"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/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling 200 12ms","method":"POST","requestID":"38c6e080-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/b43b4702-6155-4f1f-8088-c82b1d96f84a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.138","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b16a31c06f637805b93fa9d461ebb4df"} experiment-1 | {"level":"info","message":"DELETE /experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6 204 137ms","method":"DELETE","requestID":"b16a31c06f637805b93fa9d461ebb4df","responseTime":137,"status":204,"url":"/experiments/812c70fb-ad12-4f03-a9d3-110090bb17b6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 114ms","method":"POST","requestID":"a7e9e018ab3c57f0df80674d1d130768","responseTime":114,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.117","http_referrer":"","http_user_agent":"node-fetch","requestID":"a7e9e018ab3c57f0df80674d1d130768"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 113ms","method":"POST","requestID":"912c0ef138dfb1ac42abb1c309c0fbb3","responseTime":113,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.117","http_referrer":"","http_user_agent":"node-fetch","requestID":"912c0ef138dfb1ac42abb1c309c0fbb3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3cf7d5143d5f9c47227125983b136f57","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2884","request_time":"0.700","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b9b824eed3fc9d39d9c74ebd040c7ece"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.951769,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308078,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8"} 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":"3cf7d5143d5f9c47227125983b136f57"},"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/45571fc0-460a-4f6c-9184-9d0dbd0edb7d' closed"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2888","request_time":"0.723","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"118df3b0f35ebe059f361ce3a1bdb11b"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bd40f6ae-330c-4fb9-a764-319367c607af","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.305613} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3cf7d5143d5f9c47227125983b136f57"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1c6c7e16-633b-4ab7-ba28-313c16cc2886","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3099446} 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":"3cf7d5143d5f9c47227125983b136f57"},"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/b43b4702-6155-4f1f-8088-c82b1d96f84a' closed"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"0e93ab26-fee9-4dcb-8c6b-0d7ab9d7e983","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3207183} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"731b19d0-43e7-4500-9e86-9996e56f061e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3207626} 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":"3cf7d5143d5f9c47227125983b136f57"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.320692910Z"}]},"request_id":"e0698f23-bf77-4eec-b6e9-ff05349e7916","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3247418} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3cf7d5143d5f9c47227125983b136f57"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"3cf7d5143d5f9c47227125983b136f57","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3cf7d5143d5f9c47227125983b136f57"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7784ad22893405af499a761c7f15a3a2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.103755,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308078,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8"} 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":"7784ad22893405af499a761c7f15a3a2"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"cd067735-97e6-47ae-ae4b-e57dfcfce2c2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3486512} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7784ad22893405af499a761c7f15a3a2"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aa8cd29e-1ac0-4987-855d-3ff52bdf4f5e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3530054} 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":"7784ad22893405af499a761c7f15a3a2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"157cf83f-77ea-4982-9050-5b02bf2aa6bf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3631556} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b55e2f65-78ad-4a69-bc42-a41983305d0b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3634396} 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":"7784ad22893405af499a761c7f15a3a2"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.363119983Z"}]},"request_id":"e5798d3b-4199-4586-bb5c-32ca0e8c5923","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.3671117} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7784ad22893405af499a761c7f15a3a2"},"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":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7784ad22893405af499a761c7f15a3a2"} device-1 | {"level":"info","message":"POST /devices? 201 36ms","method":"POST","requestID":"7784ad22893405af499a761c7f15a3a2","responseTime":36,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"44379a78f48ec5b45bff79661ad296a4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.799652,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308078,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44379a78f48ec5b45bff79661ad296a4"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.363119983Z"}]},"request_id":"eeb39675-565d-4db5-9419-7d205228daf3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.8595405} 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":"44379a78f48ec5b45bff79661ad296a4"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ea4962a1-f25c-48ab-ba36-630d5d266e5c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.8728042} 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":"44379a78f48ec5b45bff79661ad296a4"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.363119983Z"}]},"request_id":"a36bfa38-5689-4c26-9af7-4e57050cb485","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308078.891528} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44379a78f48ec5b45bff79661ad296a4"},"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":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"44379a78f48ec5b45bff79661ad296a4"} device-1 | {"level":"info","message":"PATCH /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7 200 48ms","method":"PATCH","requestID":"44379a78f48ec5b45bff79661ad296a4","responseTime":48,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c7a28cb403fe6b885466dcaa95e91947","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.836141,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308078,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA3OH0.--MjVP1roKMZDBuQDYLcYk6BZx7VtPcLTCVGMBOJHA8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c7a28cb403fe6b885466dcaa95e91947"},"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":"21/May/2024:16:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.025","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c7a28cb403fe6b885466dcaa95e91947"} device-1 | {"level":"info","message":"POST /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/websocket 200 21ms","method":"POST","requestID":"c7a28cb403fe6b885466dcaa95e91947","responseTime":21,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7' 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":"7f909b1b4e1e64ad476148c10ca52db4","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/76525d34-08fa-41be-9594-887b642e1f42/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":"7f909b1b4e1e64ad476148c10ca52db4"} device-1 | {"level":"info","message":"OPTIONS /devices/76525d34-08fa-41be-9594-887b642e1f42/websocket 200 1ms","method":"OPTIONS","requestID":"7f909b1b4e1e64ad476148c10ca52db4","responseTime":1,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1370dbe8b4133ff7a21400f877f84f83","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.198674,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1370dbe8b4133ff7a21400f877f84f83"},"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":"21/May/2024:16:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/76525d34-08fa-41be-9594-887b642e1f42/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":"1370dbe8b4133ff7a21400f877f84f83"} device-1 | {"level":"info","message":"POST /devices/76525d34-08fa-41be-9594-887b642e1f42/websocket 200 27ms","method":"POST","requestID":"1370dbe8b4133ff7a21400f877f84f83","responseTime":27,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7f1bd7c05ed03c727bae0377367ade75","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.253487,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7f1bd7c05ed03c727bae0377367ade75"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.320692910Z"}]},"request_id":"d46e1e8f-1774-4cd1-8af7-ed47c8403658","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.4438992} 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":"7f1bd7c05ed03c727bae0377367ade75"},"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":"21/May/2024:16:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/76525d34-08fa-41be-9594-887b642e1f42? 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":"7f1bd7c05ed03c727bae0377367ade75"} device-1 | {"level":"info","message":"GET /devices/76525d34-08fa-41be-9594-887b642e1f42? 200 20ms","method":"GET","requestID":"7f1bd7c05ed03c727bae0377367ade75","responseTime":20,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"321819abda64d60cec95acd1b677259b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.070511,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"321819abda64d60cec95acd1b677259b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.363119983Z"}]},"request_id":"2fc9c848-8450-446a-8f12-f749fea2c361","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.4701486} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"321819abda64d60cec95acd1b677259b"},"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":"21/May/2024:16:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7? 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":"321819abda64d60cec95acd1b677259b"} device-1 | {"level":"info","message":"GET /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7? 200 19ms","method":"GET","requestID":"321819abda64d60cec95acd1b677259b","responseTime":19,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f95816db5d057739006111b343d01536","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:47510","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.231941,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} 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":"f95816db5d057739006111b343d01536"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"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:47510","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.19532,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a2a4110-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.199823,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a2a6820-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.320692910Z"}]},"request_id":"2ca44aaf-489a-49cd-b776-0da64105c5ff","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.555057} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a2a4110-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.363119983Z"}]},"request_id":"ec5f7a72-f1e0-4c9e-ad0f-9dbdb90632ac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.5566392} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a2a6820-178d-11ef-9e06-b78ba83e54a6"},"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/76525d34-08fa-41be-9594-887b642e1f42? 200 17ms","method":"GET","requestID":"3a2a4110-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7? 200 16ms","method":"GET","requestID":"3a2a6820-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"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/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.870324,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} 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":"3a342c20-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.15574,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} 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":"3a34a150-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.431136,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a3a6bc0b-6f2a-43dc-acd3-fe91b73ff153","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.6260595} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","rebac_allow":false,"scope_allow":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":"3a351680-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.320692910Z"}]},"request_id":"b39abbba-d86b-419d-9984-ed1200e01376","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.6307065} 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":"3a342c20-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.363119983Z"}]},"request_id":"147a54ce-45f8-48c1-8981-665742bb401c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.6351538} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a34a150-178d-11ef-9e06-b78ba83e54a6"},"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/76525d34-08fa-41be-9594-887b642e1f42/signaling 200 22ms","method":"POST","requestID":"3a351680-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5802fb21-1fa0-4341-a915-7e3ca3af8049#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5802fb21-1fa0-4341-a915-7e3ca3af8049","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"03eb0fc7-753c-45d4-b900-cfdabb80fd3d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.64182} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ea600b99-51b2-4bca-80a1-16aa48a7ca6c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.6421652} 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":"f95816db5d057739006111b343d01536"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/76525d34-08fa-41be-9594-887b642e1f42? 200 35ms","method":"GET","requestID":"3a342c20-178d-11ef-9e06-b78ba83e54a6","responseTime":35,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7? 200 34ms","method":"GET","requestID":"3a34a150-178d-11ef-9e06-b78ba83e54a6","responseTime":34,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0f646d42-065b-4536-adb3-751b9c3f6f7c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.648763} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.600522,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","rebac_allow":false,"scope_allow":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":"3a390e20-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"21/May/2024:16:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f95816db5d057739006111b343d01536"} experiment-1 | {"level":"info","message":"POST /experiments? 201 172ms","method":"POST","requestID":"f95816db5d057739006111b343d01536","responseTime":172,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling 200 16ms","method":"POST","requestID":"3a390e20-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"337545f2-9c6c-4807-9cc5-36bcc830fc86","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.6586666} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.067861,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","rebac_allow":false,"scope_allow":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":"3a3a6db0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9394fc10ad7b7a7b0c9c81144a565ab2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/76525d34-08fa-41be-9594-887b642e1f42/signaling 200 14ms","method":"POST","requestID":"3a3a6db0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.070516,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9394fc10ad7b7a7b0c9c81144a565ab2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd8c908a-566d-4794-b5a9-8398009b6e05","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.6755462} authorization-1 | {"client_addr":"127.0.0.1:50052","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.866014,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","rebac_allow":false,"scope_allow":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":"3a3d05c0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.320692910Z"}]},"request_id":"f22f7831-68bb-4f66-94d3-3e8bc9270151","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.677404} 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":"9394fc10ad7b7a7b0c9c81144a565ab2"},"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/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling 200 17ms","method":"POST","requestID":"3a3d05c0-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/76525d34-08fa-41be-9594-887b642e1f42? 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":"9394fc10ad7b7a7b0c9c81144a565ab2"} device-1 | {"level":"info","message":"GET /devices/76525d34-08fa-41be-9594-887b642e1f42? 200 20ms","method":"GET","requestID":"9394fc10ad7b7a7b0c9c81144a565ab2","responseTime":20,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"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":"3c81cde1-97ea-42ca-b1b0-cee4dc33ba20"},{"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":"990383eb-d894-47a5-8097-084ddd261314"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"3dfd4eef-852d-47e1-abc5-8129347d4321"}]},"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/7604bae5-6b71-47c2-a6a1-99d14a25f8d7"},{"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/76525d34-08fa-41be-9594-887b642e1f42"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0418fa7d3276188bc5adc82ec8dfc953","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.292848,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} 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":"3a401300-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.074371,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308080,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4MH0.xP02m3wPthANEqNMWu1CRMSael6RMi_rPa1w4CMt5BI"} 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":"0418fa7d3276188bc5adc82ec8dfc953"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"461d2444-92ee-476d-a166-eb2283e245d3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.7043386} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"459b2479-8000-45c4-bb3b-089c46cf4d3e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.7045677} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:38.363119983Z"}]},"request_id":"52b4da24-ebf6-4ae1-ab28-ea756520b314","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.705493} 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":"3a401300-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0418fa7d3276188bc5adc82ec8dfc953"},"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":"21/May/2024:16:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7? 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":"0418fa7d3276188bc5adc82ec8dfc953"} device-1 | {"level":"info","message":"GET /devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7? 200 22ms","method":"GET","requestID":"0418fa7d3276188bc5adc82ec8dfc953","responseTime":22,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7?"} 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/7b4a2856-61ce-4df3-9ec2-a6a3b558edec'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec'"} 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":"3a401300-178d-11ef-9e06-b78ba83e54a6","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/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"68247d77-b04e-4d6d-9552-b6ae838e0955","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.764817} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.578638,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","rebac_allow":false,"scope_allow":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":"3a4b0f80-178d-11ef-9e06-b78ba83e54a6"},"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/76525d34-08fa-41be-9594-887b642e1f42/signaling 200 12ms","method":"POST","requestID":"3a4b0f80-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42'"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6f203e2e-7bf9-4d54-9b0b-d1ab3844f67e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308080.7789664} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.300748,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","rebac_allow":false,"scope_allow":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":"3a4d3260-178d-11ef-9e06-b78ba83e54a6"},"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/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling 200 8ms","method":"POST","requestID":"3a4d3260-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling"} device-1 | {"data":{"peerconnection":"7b4a2856-61ce-4df3-9ec2-a6a3b558edec","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/7b4a2856-61ce-4df3-9ec2-a6a3b558edec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7b4a2856-61ce-4df3-9ec2-a6a3b558edec","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":"09d2c9d0842e457d0035b6e4b3a93d35","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":"connecting","url":"http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7"},{"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/76525d34-08fa-41be-9594-887b642e1f42"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"09d2c9d0842e457d0035b6e4b3a93d35","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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":"09d2c9d0842e457d0035b6e4b3a93d35"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42'"} device-1 | {"data":{"peerconnection":"7b4a2856-61ce-4df3-9ec2-a6a3b558edec","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42'"} device-1 | {"data":{"peerconnection":"7b4a2856-61ce-4df3-9ec2-a6a3b558edec","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/7b4a2856-61ce-4df3-9ec2-a6a3b558edec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7b4a2856-61ce-4df3-9ec2-a6a3b558edec","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":"b0a0a477e572b5dada8232355a389eab","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7"},{"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/76525d34-08fa-41be-9594-887b642e1f42"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7b4a2856-61ce-4df3-9ec2-a6a3b558edec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6cd49fdc-ac68-43e4-b00c-93116bb4887a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308082.845373} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.550227,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec","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":"3b887180-178d-11ef-9e06-b78ba83e54a6"},"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/7b4a2856-61ce-4df3-9ec2-a6a3b558edec 200 9ms","method":"GET","requestID":"3b887180-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"b0a0a477e572b5dada8232355a389eab","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"b0a0a477e572b5dada8232355a389eab"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6b9bbb16-381b-43b7-a7a5-bdbdb5d7ff18","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308082.8696492} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.095806,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","rebac_allow":false,"scope_allow":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":"3b8c4210-178d-11ef-9e06-b78ba83e54a6"},"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/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling 200 8ms","method":"POST","requestID":"3b8c4210-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f9b3b61b-9897-4eb5-9136-36bfc732f491","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308082.8804317} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.508624,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","rebac_allow":false,"scope_allow":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":"3b8defc0-178d-11ef-9e06-b78ba83e54a6"},"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/76525d34-08fa-41be-9594-887b642e1f42/signaling 200 9ms","method":"POST","requestID":"3b8defc0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4Mn0.9RZUOUzd7PRq9BJhDPe-3rwManCQEtlKpBhbTMt1CsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c111cc01b93fc1ca96d350b8853bad1c","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.347501,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308082,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4Mn0.9RZUOUzd7PRq9BJhDPe-3rwManCQEtlKpBhbTMt1CsM"} 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":"c111cc01b93fc1ca96d350b8853bad1c"},"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/5802fb21-1fa0-4341-a915-7e3ca3af8049"} experiment-1 | {"level":"info","message":"GET /experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049 200 17ms","method":"GET","requestID":"c111cc01b93fc1ca96d350b8853bad1c","responseTime":17,"status":200,"url":"/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"} gateway-1 | {"time_local":"21/May/2024:16:14:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c111cc01b93fc1ca96d350b8853bad1c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4Mn0.9RZUOUzd7PRq9BJhDPe-3rwManCQEtlKpBhbTMt1CsM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"0e9a2bf22b44dfbf31c143aa2507e6fe","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.287338,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308082,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4Mn0.9RZUOUzd7PRq9BJhDPe-3rwManCQEtlKpBhbTMt1CsM"} 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":"0e9a2bf22b44dfbf31c143aa2507e6fe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.228436,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308082,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4Mn0.9RZUOUzd7PRq9BJhDPe-3rwManCQEtlKpBhbTMt1CsM"} 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":"3b9c6eb0-178d-11ef-9e06-b78ba83e54a6"},"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/7b4a2856-61ce-4df3-9ec2-a6a3b558edec' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7b4a2856-61ce-4df3-9ec2-a6a3b558edec","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":"508bfaf3aa75bc65a0014e7caf778847","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7b4a2856-61ce-4df3-9ec2-a6a3b558edec': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7b4a2856-61ce-4df3-9ec2-a6a3b558edec","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"e026b17e-0a61-4f90-ad4c-6bfe488ccb47","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.0003967} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7"},{"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/76525d34-08fa-41be-9594-887b642e1f42"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"20c3e9f9895afce01d66ae8abea02e57","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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0b02c889-8124-4ac2-9491-a766f7d04b04","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.0009997} 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/7604bae5-6b71-47c2-a6a1-99d14a25f8d7"},{"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/76525d34-08fa-41be-9594-887b642e1f42"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3b9c6eb0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"data":{"peerconnection":"7b4a2856-61ce-4df3-9ec2-a6a3b558edec","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/7b4a2856-61ce-4df3-9ec2-a6a3b558edec 204 58ms","method":"DELETE","requestID":"3b9c6eb0-178d-11ef-9e06-b78ba83e54a6","responseTime":58,"status":204,"url":"/peerconnections/7b4a2856-61ce-4df3-9ec2-a6a3b558edec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7604bae5-6b71-47c2-a6a1-99d14a25f8d7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"86da39ce-a793-4b68-9ff6-230bb95a42a1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.0602455} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.543663,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7","object_type":"device","rebac_allow":false,"scope_allow":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":"3ba918e0-178d-11ef-9e06-b78ba83e54a6"},"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/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling 200 13ms","method":"POST","requestID":"3ba918e0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5802fb21-1fa0-4341-a915-7e3ca3af8049': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5802fb21-1fa0-4341-a915-7e3ca3af8049","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"fd7e6a88-48ef-4528-82ac-2f244a13df77","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.067462} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cb1935df-25b1-4d6a-a934-548c6da80410","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.068005} 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":"0e9a2bf22b44dfbf31c143aa2507e6fe"},"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:47510","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F76525d34-08fa-41be-9594-887b642e1f42","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"14b287e2-b64f-4b50-a5b3-d54cde97863b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.076676} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.416652,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/76525d34-08fa-41be-9594-887b642e1f42","object_type":"device","rebac_allow":false,"scope_allow":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":"3bab89e0-178d-11ef-9e06-b78ba83e54a6"},"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/76525d34-08fa-41be-9594-887b642e1f42/signaling 200 13ms","method":"POST","requestID":"3bab89e0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/76525d34-08fa-41be-9594-887b642e1f42/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"} gateway-1 | {"time_local":"21/May/2024:16:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049 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":"0e9a2bf22b44dfbf31c143aa2507e6fe"} gateway-1 | {"time_local":"21/May/2024:16:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3228","request_time":"4.214","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d7907d11f520805c262c71027f6706cb"} experiment-1 | {"level":"info","message":"DELETE /experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049 204 182ms","method":"DELETE","requestID":"0e9a2bf22b44dfbf31c143aa2507e6fe","responseTime":182,"status":204,"url":"/experiments/5802fb21-1fa0-4341-a915-7e3ca3af8049"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"508bfaf3aa75bc65a0014e7caf778847","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"508bfaf3aa75bc65a0014e7caf778847"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"20c3e9f9895afce01d66ae8abea02e57","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"20c3e9f9895afce01d66ae8abea02e57"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4M30.QtimPCxoU6GauRuqS2ObBLR02xU2xaMCM_HvPZhBkq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"75956779c8c6d75158aed961a32fe1c7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2742","request_time":"2.739","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1c98817ab644c77ee9cb8e2018d024ad"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7604bae5-6b71-47c2-a6a1-99d14a25f8d7' closed"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.930472,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308083,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4M30.QtimPCxoU6GauRuqS2ObBLR02xU2xaMCM_HvPZhBkq4"} 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":"75956779c8c6d75158aed961a32fe1c7"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6aebf71f-a9bd-49e0-9c49-3444b01ea581","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.1575427} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"75956779c8c6d75158aed961a32fe1c7"},"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/76525d34-08fa-41be-9594-887b642e1f42' 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eddfd3a1-5bdf-4c23-b0c6-597f030bd0e0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.1634686} 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":"75956779c8c6d75158aed961a32fe1c7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"f9c1e4b6-3e9d-4122-8633-bd087bf8b9c5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.1758566} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"33d1967a-50fc-4d17-a7a5-02000b7640ff","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.176098} 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":"75956779c8c6d75158aed961a32fe1c7"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.175835554Z"}]},"request_id":"b58dc48c-ab28-477c-8431-059de6f3d823","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.1801825} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"75956779c8c6d75158aed961a32fe1c7"},"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":"21/May/2024:16:14: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.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"75956779c8c6d75158aed961a32fe1c7"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"75956779c8c6d75158aed961a32fe1c7","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4M30.QtimPCxoU6GauRuqS2ObBLR02xU2xaMCM_HvPZhBkq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0d8dedee11ba6792081dc1bcc73eb5e0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.72428,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308083,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4M30.QtimPCxoU6GauRuqS2ObBLR02xU2xaMCM_HvPZhBkq4"} 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":"0d8dedee11ba6792081dc1bcc73eb5e0"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a78c2280-2502-4223-b2e2-a8a998e74d54","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.2041802} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d8dedee11ba6792081dc1bcc73eb5e0"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"083f33ad-fb93-4d47-9328-08799b2283ed","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.2105618} 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":"0d8dedee11ba6792081dc1bcc73eb5e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"a951e1a4-6093-4b72-8f24-85dea3f6d28b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.2202296} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"61df24f2-f504-4d3e-953a-3b839efcc68e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.2203994} 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":"0d8dedee11ba6792081dc1bcc73eb5e0"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.220210769Z"}]},"request_id":"a7156b4e-201c-41d2-9847-b59bcd492564","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.2245502} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0d8dedee11ba6792081dc1bcc73eb5e0"},"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":"21/May/2024:16:14: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.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0d8dedee11ba6792081dc1bcc73eb5e0"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"0d8dedee11ba6792081dc1bcc73eb5e0","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4M30.QtimPCxoU6GauRuqS2ObBLR02xU2xaMCM_HvPZhBkq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"91315576b2cda773e5ad0f9516e62bda","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210631,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308083,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4M30.QtimPCxoU6GauRuqS2ObBLR02xU2xaMCM_HvPZhBkq4"} 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":"91315576b2cda773e5ad0f9516e62bda"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.220210769Z"}]},"request_id":"fa971d20-7803-4090-96b4-5288694ee7dd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.714641} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91315576b2cda773e5ad0f9516e62bda"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9da2c013-af83-4c0c-bc58-37bb962da0e8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.72099} 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":"91315576b2cda773e5ad0f9516e62bda"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.220210769Z"}]},"request_id":"a3e6b5e4-cdce-4bd8-b1a3-e4d2a920ac21","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308083.7379837} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"91315576b2cda773e5ad0f9516e62bda"},"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":"21/May/2024:16:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/ff9b18fc-51fb-4c71-af63-11df6689e853 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":"91315576b2cda773e5ad0f9516e62bda"} device-1 | {"level":"info","message":"PATCH /devices/ff9b18fc-51fb-4c71-af63-11df6689e853 200 37ms","method":"PATCH","requestID":"91315576b2cda773e5ad0f9516e62bda","responseTime":37,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4M30.QtimPCxoU6GauRuqS2ObBLR02xU2xaMCM_HvPZhBkq4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"2f4a856b0e829a6735bb1753c4d1ae34","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.042278,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308083,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4M30.QtimPCxoU6GauRuqS2ObBLR02xU2xaMCM_HvPZhBkq4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2f4a856b0e829a6735bb1753c4d1ae34"},"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":"21/May/2024:16:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ff9b18fc-51fb-4c71-af63-11df6689e853/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":"2f4a856b0e829a6735bb1753c4d1ae34"} device-1 | {"level":"info","message":"POST /devices/ff9b18fc-51fb-4c71-af63-11df6689e853/websocket 200 23ms","method":"POST","requestID":"2f4a856b0e829a6735bb1753c4d1ae34","responseTime":23,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853' 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":"5c1b5077b71447e244ab28643ae75fd5","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/64d5663c-6847-485c-98fa-6fefd362ad3e/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":"5c1b5077b71447e244ab28643ae75fd5"} device-1 | {"level":"info","message":"OPTIONS /devices/64d5663c-6847-485c-98fa-6fefd362ad3e/websocket 200 1ms","method":"OPTIONS","requestID":"5c1b5077b71447e244ab28643ae75fd5","responseTime":1,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"13b1b2354068a5c70086eba8f0c60313","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.207145,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"13b1b2354068a5c70086eba8f0c60313"},"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/64d5663c-6847-485c-98fa-6fefd362ad3e/websocket 200 35ms","method":"POST","requestID":"13b1b2354068a5c70086eba8f0c60313","responseTime":35,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e/websocket"} gateway-1 | {"time_local":"21/May/2024:16:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/64d5663c-6847-485c-98fa-6fefd362ad3e/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":"13b1b2354068a5c70086eba8f0c60313"} device-1 | {"level":"info","message":"device 'http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"2c540a09f14498d81bb4fd8436a5b91b","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.230177,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} 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":"2c540a09f14498d81bb4fd8436a5b91b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.175835554Z"}]},"request_id":"1a363bc3-ce50-458d-bad0-7deddf5677bd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.2976239} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2c540a09f14498d81bb4fd8436a5b91b"},"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":"21/May/2024:16:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/64d5663c-6847-485c-98fa-6fefd362ad3e? 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":"2c540a09f14498d81bb4fd8436a5b91b"} device-1 | {"level":"info","message":"GET /devices/64d5663c-6847-485c-98fa-6fefd362ad3e? 200 20ms","method":"GET","requestID":"2c540a09f14498d81bb4fd8436a5b91b","responseTime":20,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c7eef533483c58785a114cece96f2310","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.727893,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c7eef533483c58785a114cece96f2310"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.220210769Z"}]},"request_id":"1ac44c27-730e-4adf-b01e-3d059de43917","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.3248928} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c7eef533483c58785a114cece96f2310"},"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":"21/May/2024:16:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ff9b18fc-51fb-4c71-af63-11df6689e853? 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":"c7eef533483c58785a114cece96f2310"} device-1 | {"level":"info","message":"GET /devices/ff9b18fc-51fb-4c71-af63-11df6689e853? 200 21ms","method":"GET","requestID":"c7eef533483c58785a114cece96f2310","responseTime":21,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"203f59f02759f902420a947cf92f9b90","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:47510","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.222503,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} 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":"203f59f02759f902420a947cf92f9b90"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"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:47510","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.476757,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} 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":"3d0e9c50-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:42370","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:42370","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.38963,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} 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":"3d0eea70-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.175835554Z"}]},"request_id":"461a5c2f-3925-4063-8561-fd2c351e826c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.4120555} 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":"3d0e9c50-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.220210769Z"}]},"request_id":"b0e2d5bc-8f05-4624-a9aa-6865e149f188","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.419051} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d0eea70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"GET /devices/64d5663c-6847-485c-98fa-6fefd362ad3e? 200 24ms","method":"GET","requestID":"3d0e9c50-178d-11ef-9e06-b78ba83e54a6","responseTime":24,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ff9b18fc-51fb-4c71-af63-11df6689e853? 200 28ms","method":"GET","requestID":"3d0eea70-178d-11ef-9e06-b78ba83e54a6","responseTime":28,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"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/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.690299,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} 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":"3d1ca610-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:42370","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:42370","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.698756,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} 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":"3d1cf430-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.256938,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9ee65336-5939-4ac5-af3d-8fb7422fcf94","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.5050871} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","rebac_allow":false,"scope_allow":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":"3d1d6960-178d-11ef-9e06-b78ba83e54a6"},"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/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling 200 21ms","method":"POST","requestID":"3d1d6960-178d-11ef-9e06-b78ba83e54a6","responseTime":21,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.220210769Z"}]},"request_id":"6ded2bae-f9a1-4201-b166-9a841743a220","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.5135477} 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":"3d1cf430-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.175835554Z"}]},"request_id":"2283fd74-41df-490c-9b23-f7d54163a73a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.516105} 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":"3d1ca610-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"20ca319a-82c5-4b36-99cc-edb9fdf39a05","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.5272255} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcef67a71-a767-4f38-877f-df32389e560c#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcef67a71-a767-4f38-877f-df32389e560c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"02d5d035-c8aa-4480-b74e-7590e00e2c16","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.5274704} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f157d3ad-5818-4e1c-b884-be59927a65a0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.5277863} device-1 | {"level":"info","message":"GET /devices/ff9b18fc-51fb-4c71-af63-11df6689e853? 200 38ms","method":"GET","requestID":"3d1cf430-178d-11ef-9e06-b78ba83e54a6","responseTime":38,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.737109,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} device-1 | {"level":"info","message":"GET /devices/64d5663c-6847-485c-98fa-6fefd362ad3e? 200 41ms","method":"GET","requestID":"3d1ca610-178d-11ef-9e06-b78ba83e54a6","responseTime":41,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","rebac_allow":false,"scope_allow":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":"3d2139f0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} 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":"203f59f02759f902420a947cf92f9b90"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":29}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling 200 18ms","method":"POST","requestID":"3d2139f0-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6647fa6b-9b14-456c-99fd-2af359336d14","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.541205} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.338111,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","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/cef67a71-a767-4f38-877f-df32389e560c","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d2383e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} gateway-1 | {"time_local":"21/May/2024:16:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.210","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"203f59f02759f902420a947cf92f9b90"} experiment-1 | {"level":"info","message":"POST /experiments? 201 205ms","method":"POST","requestID":"203f59f02759f902420a947cf92f9b90","responseTime":205,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling 200 15ms","method":"POST","requestID":"3d2383e0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"ad6ed673165ca5cf5021ac25d5d5f2d9","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:42370","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cd7d8bff-c5e8-46e8-b350-41f981ef9c21","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.558645} authorization-1 | {"client_addr":"127.0.0.1:42370","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.197926,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad6ed673165ca5cf5021ac25d5d5f2d9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.628105,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","rebac_allow":false,"scope_allow":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":"3d264300-178d-11ef-9e06-b78ba83e54a6"},"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/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling 200 16ms","method":"POST","requestID":"3d264300-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"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":"e6e38dbd-13a9-4c2e-8757-f5195eaf944c"},{"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":"cbaf83d0-9451-45c3-8db8-70914145a3b0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"5b8406f2-36e3-43bb-9c63-4cf90504d3a2"}]},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.175835554Z"}]},"request_id":"581bdb2e-e167-4cba-a79d-8ddc9fc17cce","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.5688956} 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/64d5663c-6847-485c-98fa-6fefd362ad3e"},{"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/ff9b18fc-51fb-4c71-af63-11df6689e853"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad6ed673165ca5cf5021ac25d5d5f2d9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.167627,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} gateway-1 | {"time_local":"21/May/2024:16:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/64d5663c-6847-485c-98fa-6fefd362ad3e? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ad6ed673165ca5cf5021ac25d5d5f2d9"} device-1 | {"level":"info","message":"GET /devices/64d5663c-6847-485c-98fa-6fefd362ad3e? 200 24ms","method":"GET","requestID":"ad6ed673165ca5cf5021ac25d5d5f2d9","responseTime":24,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} 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":"3d295040-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1357006afc3ed12fe030c288b0326ea6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"6f2d4ab1-48f8-4727-980c-01c8663e2db2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.589855} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e3bd7c45-006f-4e7d-8462-de2d66688e13","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.5900133} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.869153,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} 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":"3d295040-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308085,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4NX0.Z8zJV8skIP42vX-dKTv7HvSmshyTA5TL_WN_r1zwA1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1357006afc3ed12fe030c288b0326ea6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:43.220210769Z"}]},"request_id":"94099094-1e3e-45a8-a04b-b39c199f2410","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.5983226} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1357006afc3ed12fe030c288b0326ea6"},"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/a622a45b-b205-405d-90d1-77d68b87b4d0'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"3d295040-178d-11ef-9e06-b78ba83e54a6","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ff9b18fc-51fb-4c71-af63-11df6689e853? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1357006afc3ed12fe030c288b0326ea6"} device-1 | {"level":"info","message":"GET /devices/ff9b18fc-51fb-4c71-af63-11df6689e853? 200 30ms","method":"GET","requestID":"1357006afc3ed12fe030c288b0326ea6","responseTime":30,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2ca2b7ae-c01c-48be-a672-d6b6f1d54313","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.6568892} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.745611,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","rebac_allow":false,"scope_allow":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":"3d355e30-178d-11ef-9e06-b78ba83e54a6"},"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/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling 200 11ms","method":"POST","requestID":"3d355e30-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5dbdb651-f6fa-4baf-a17c-024287c060ea","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308085.672819} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.13993,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","rebac_allow":false,"scope_allow":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":"3d375a00-178d-11ef-9e06-b78ba83e54a6"},"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/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling 200 14ms","method":"POST","requestID":"3d375a00-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling"} device-1 | {"data":{"peerconnection":"a622a45b-b205-405d-90d1-77d68b87b4d0","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/a622a45b-b205-405d-90d1-77d68b87b4d0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a622a45b-b205-405d-90d1-77d68b87b4d0","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":"3e3dbe5171258ab4a85b005b03aa2146","responseTime":2,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e'"} 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/64d5663c-6847-485c-98fa-6fefd362ad3e"},{"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/ff9b18fc-51fb-4c71-af63-11df6689e853"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"3e3dbe5171258ab4a85b005b03aa2146","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"3e3dbe5171258ab4a85b005b03aa2146"} device-1 | {"data":{"peerconnection":"a622a45b-b205-405d-90d1-77d68b87b4d0","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a622a45b-b205-405d-90d1-77d68b87b4d0","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/a622a45b-b205-405d-90d1-77d68b87b4d0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a622a45b-b205-405d-90d1-77d68b87b4d0","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":"373af246de46e0688d603347f4155c31","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/64d5663c-6847-485c-98fa-6fefd362ad3e"},{"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/ff9b18fc-51fb-4c71-af63-11df6689e853"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa622a45b-b205-405d-90d1-77d68b87b4d0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"55d08a13-6ef2-4ebf-9dc1-3e9a9a5142fc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308087.8366313} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":5.330436,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0","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":"3e818d40-178d-11ef-9e06-b78ba83e54a6"},"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/a622a45b-b205-405d-90d1-77d68b87b4d0 200 16ms","method":"GET","requestID":"3e818d40-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"373af246de46e0688d603347f4155c31","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"373af246de46e0688d603347f4155c31"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5ccee34f-36ae-4d82-9e5e-cd65991d3f6b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308087.8752122} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.012576,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","rebac_allow":false,"scope_allow":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":"3e87a7c0-178d-11ef-9e06-b78ba83e54a6"},"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/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling 200 14ms","method":"POST","requestID":"3e87a7c0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b608274-6637-45c0-a130-de319656b9a5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308087.8912861} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.874097,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","rebac_allow":false,"scope_allow":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":"3e8a3fd0-178d-11ef-9e06-b78ba83e54a6"},"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/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling 200 14ms","method":"POST","requestID":"3e8a3fd0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4N30.QR8DQHRyIcAdlrV0O3P9rb3KmiPyDREcvoApKwscMR8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"240e97d6b831a4b046a48a44498cd6ca","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/cef67a71-a767-4f38-877f-df32389e560c"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.671228,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308087,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4N30.QR8DQHRyIcAdlrV0O3P9rb3KmiPyDREcvoApKwscMR8"} 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":"240e97d6b831a4b046a48a44498cd6ca"},"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/cef67a71-a767-4f38-877f-df32389e560c"} gateway-1 | {"time_local":"21/May/2024:16:14:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/cef67a71-a767-4f38-877f-df32389e560c HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"240e97d6b831a4b046a48a44498cd6ca"} experiment-1 | {"level":"info","message":"GET /experiments/cef67a71-a767-4f38-877f-df32389e560c 200 13ms","method":"GET","requestID":"240e97d6b831a4b046a48a44498cd6ca","responseTime":13,"status":200,"url":"/experiments/cef67a71-a767-4f38-877f-df32389e560c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4N30.QR8DQHRyIcAdlrV0O3P9rb3KmiPyDREcvoApKwscMR8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"fce7e1cd3a4a489fefc5a316743be8e5","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/cef67a71-a767-4f38-877f-df32389e560c"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.176263,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308087,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4N30.QR8DQHRyIcAdlrV0O3P9rb3KmiPyDREcvoApKwscMR8"} 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":"fce7e1cd3a4a489fefc5a316743be8e5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.189879,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308087,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4N30.QR8DQHRyIcAdlrV0O3P9rb3KmiPyDREcvoApKwscMR8"} 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":"3e936790-178d-11ef-9e06-b78ba83e54a6"},"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/a622a45b-b205-405d-90d1-77d68b87b4d0' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a622a45b-b205-405d-90d1-77d68b87b4d0","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa622a45b-b205-405d-90d1-77d68b87b4d0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa622a45b-b205-405d-90d1-77d68b87b4d0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"51e8d821-ccc8-4ebc-b5c0-5bcd39231b54","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308087.9731758} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78964e79-6abd-4d77-a63f-1614594b7066","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308087.9740558} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"80a5d1830c532912d6a35b89ba881a6c","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e936790-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-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/64d5663c-6847-485c-98fa-6fefd362ad3e"},{"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/ff9b18fc-51fb-4c71-af63-11df6689e853"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4a3e4700380417cd633f5a638a507595","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e"},{"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/ff9b18fc-51fb-4c71-af63-11df6689e853"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0 204 38ms","method":"DELETE","requestID":"3e936790-178d-11ef-9e06-b78ba83e54a6","responseTime":38,"status":204,"url":"/peerconnections/a622a45b-b205-405d-90d1-77d68b87b4d0"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cef67a71-a767-4f38-877f-df32389e560c"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F64d5663c-6847-485c-98fa-6fefd362ad3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"439cd697-e200-45de-9269-f2f4e19a9a46","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.0194116} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.07059,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/64d5663c-6847-485c-98fa-6fefd362ad3e","object_type":"device","rebac_allow":false,"scope_allow":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":"3e9d79b0-178d-11ef-9e06-b78ba83e54a6"},"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/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling 200 15ms","method":"POST","requestID":"3e9d79b0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/64d5663c-6847-485c-98fa-6fefd362ad3e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcef67a71-a767-4f38-877f-df32389e560c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcef67a71-a767-4f38-877f-df32389e560c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"4f421cd5-4b11-49ee-89a4-383ade51dee2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.0298166} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b8d201e3-8603-4dfe-9b0d-bb8c795f428e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.0301886} 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":"fce7e1cd3a4a489fefc5a316743be8e5"},"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:47510","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fff9b18fc-51fb-4c71-af63-11df6689e853","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1cc36920-e7f8-4932-8110-7eb4fbf71666","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.0344644} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.432276,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ff9b18fc-51fb-4c71-af63-11df6689e853","object_type":"device","rebac_allow":false,"scope_allow":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":"3ea011c0-178d-11ef-9e06-b78ba83e54a6"},"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/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling 200 12ms","method":"POST","requestID":"3ea011c0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/ff9b18fc-51fb-4c71-af63-11df6689e853/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/cef67a71-a767-4f38-877f-df32389e560c"} gateway-1 | {"time_local":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/cef67a71-a767-4f38-877f-df32389e560c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.167","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fce7e1cd3a4a489fefc5a316743be8e5"} experiment-1 | {"level":"info","message":"DELETE /experiments/cef67a71-a767-4f38-877f-df32389e560c 204 162ms","method":"DELETE","requestID":"fce7e1cd3a4a489fefc5a316743be8e5","responseTime":162,"status":204,"url":"/experiments/cef67a71-a767-4f38-877f-df32389e560c"} gateway-1 | {"time_local":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2836","request_time":"4.317","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b823d2e87d0549aac862e3798ae3e1ee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 115ms","method":"POST","requestID":"80a5d1830c532912d6a35b89ba881a6c","responseTime":115,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.121","http_referrer":"","http_user_agent":"node-fetch","requestID":"80a5d1830c532912d6a35b89ba881a6c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 113ms","method":"POST","requestID":"4a3e4700380417cd633f5a638a507595","responseTime":113,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.122","http_referrer":"","http_user_agent":"node-fetch","requestID":"4a3e4700380417cd633f5a638a507595"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4OH0.V7ImKdLH79zaiNtbhf4lsTfDvlUrHE4z9Yoo8u3rWq8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d1dafb665348871ca6d266dc33b05fb9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.046519,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:48Z"} gateway-1 | {"time_local":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2747","request_time":"2.843","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9e3406de2e8fcd55f03805b1ea393bfa"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308088,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4OH0.V7ImKdLH79zaiNtbhf4lsTfDvlUrHE4z9Yoo8u3rWq8"} 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":"d1dafb665348871ca6d266dc33b05fb9"},"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/ff9b18fc-51fb-4c71-af63-11df6689e853' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3ffcb59b-2422-42ee-9af5-ac08c419f840","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.1147652} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1dafb665348871ca6d266dc33b05fb9"},"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/64d5663c-6847-485c-98fa-6fefd362ad3e' 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"493efe8e-22ed-44ce-9736-634bafe6d256","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.120115} 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":"d1dafb665348871ca6d266dc33b05fb9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"047e6620-d025-401f-8db1-42d5f84ac1d1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.133349} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db0d9dc8-2e94-44a1-a3c0-75a65c9ac744","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.1336179} 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":"d1dafb665348871ca6d266dc33b05fb9"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.133322860Z"}]},"request_id":"84e03de4-5d90-451d-b43c-601dee5ee2b2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.138214} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1dafb665348871ca6d266dc33b05fb9"},"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":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d1dafb665348871ca6d266dc33b05fb9"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"d1dafb665348871ca6d266dc33b05fb9","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4OH0.V7ImKdLH79zaiNtbhf4lsTfDvlUrHE4z9Yoo8u3rWq8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1798ce4474622372aa7e83f08429667a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.735636,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308088,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4OH0.V7ImKdLH79zaiNtbhf4lsTfDvlUrHE4z9Yoo8u3rWq8"} 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":"1798ce4474622372aa7e83f08429667a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"223d0a6a-ef48-4eab-b05c-045a366721dc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.1627192} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1798ce4474622372aa7e83f08429667a"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46dabaaf-4614-4c08-b4f5-bfab5cc37c4e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.1680782} 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":"1798ce4474622372aa7e83f08429667a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d6820bb3-5d5e-4554-86d2-5d6808529e34","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.1777244} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2161e7c-beb3-4f7d-89c8-442d8505c386","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.1778345} 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":"1798ce4474622372aa7e83f08429667a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.177696089Z"}]},"request_id":"914f19bf-67b2-4ca4-8792-931b31b330fd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.182293} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1798ce4474622372aa7e83f08429667a"},"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":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1798ce4474622372aa7e83f08429667a"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"1798ce4474622372aa7e83f08429667a","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4OH0.V7ImKdLH79zaiNtbhf4lsTfDvlUrHE4z9Yoo8u3rWq8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"877d79d13351900711c1b01243373b57","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.343952,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308088,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4OH0.V7ImKdLH79zaiNtbhf4lsTfDvlUrHE4z9Yoo8u3rWq8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"877d79d13351900711c1b01243373b57"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.133322860Z"}]},"request_id":"f9d067de-2749-4651-8a0d-7485b91f8eb6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.6870432} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"877d79d13351900711c1b01243373b57"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02965980-5767-4323-86f6-7b69aa5308ba","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.6942565} 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":"877d79d13351900711c1b01243373b57"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.133322860Z"}]},"request_id":"6c31e796-5c96-4bd5-b107-825592ff8743","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308088.7213871} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"877d79d13351900711c1b01243373b57"},"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503 200 50ms","method":"PATCH","requestID":"877d79d13351900711c1b01243373b57","responseTime":50,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503"} gateway-1 | {"time_local":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503 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":"877d79d13351900711c1b01243373b57"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4OH0.V7ImKdLH79zaiNtbhf4lsTfDvlUrHE4z9Yoo8u3rWq8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f03cfb63cd9957966d17189919c67611","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.230077,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308088,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA4OH0.V7ImKdLH79zaiNtbhf4lsTfDvlUrHE4z9Yoo8u3rWq8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f03cfb63cd9957966d17189919c67611"},"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/websocket 200 23ms","method":"POST","requestID":"f03cfb63cd9957966d17189919c67611","responseTime":23,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/websocket"} gateway-1 | {"time_local":"21/May/2024:16:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/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":"f03cfb63cd9957966d17189919c67611"} device-1 | {"level":"info","message":"device 'http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503' 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":"248b3472b9dec9f1c23c0e30c5b402cc","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/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":"248b3472b9dec9f1c23c0e30c5b402cc"} device-1 | {"level":"info","message":"OPTIONS /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/websocket 200 1ms","method":"OPTIONS","requestID":"248b3472b9dec9f1c23c0e30c5b402cc","responseTime":1,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d62ae27138aef830b8355519863dc269","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.184632,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d62ae27138aef830b8355519863dc269"},"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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/websocket 200 37ms","method":"POST","requestID":"d62ae27138aef830b8355519863dc269","responseTime":37,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/websocket"} gateway-1 | {"time_local":"21/May/2024:16:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d62ae27138aef830b8355519863dc269"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"d9a9e3b4c5714600dd3e1d1e2279dc06","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.270292,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d9a9e3b4c5714600dd3e1d1e2279dc06"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.133322860Z"}]},"request_id":"2ff21c40-2eed-4a88-9c57-71d6a1bfb23f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.257062} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d9a9e3b4c5714600dd3e1d1e2279dc06"},"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":"21/May/2024:16:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503? 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":"d9a9e3b4c5714600dd3e1d1e2279dc06"} device-1 | {"level":"info","message":"GET /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503? 200 18ms","method":"GET","requestID":"d9a9e3b4c5714600dd3e1d1e2279dc06","responseTime":18,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a65dcfa530dfb135ab5a61048d00949a","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.392148,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a65dcfa530dfb135ab5a61048d00949a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.177696089Z"}]},"request_id":"f19a9479-7594-4452-a4ed-08436c4abd9c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.2824101} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a65dcfa530dfb135ab5a61048d00949a"},"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":"21/May/2024:16:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9? 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":"a65dcfa530dfb135ab5a61048d00949a"} device-1 | {"level":"info","message":"GET /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9? 200 17ms","method":"GET","requestID":"a65dcfa530dfb135ab5a61048d00949a","responseTime":17,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b93164c87b2514e537b75fe6848c7611","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:47510","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.184513,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} 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":"b93164c87b2514e537b75fe6848c7611"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"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:47510","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.261691,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40037250-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:42384","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:42384","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.009363,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} 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":"4003c070-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.133322860Z"}]},"request_id":"1af642bc-fa7f-410e-8def-92a081aae435","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.3691082} 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":"40037250-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.177696089Z"}]},"request_id":"9989b35a-1c12-44e7-bd31-7780ccf50cb2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.3764477} device-1 | {"level":"info","message":"GET /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503? 200 20ms","method":"GET","requestID":"40037250-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4003c070-178d-11ef-9e06-b78ba83e54a6"},"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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9? 200 23ms","method":"GET","requestID":"4003c070-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"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:47510","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.353018,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:42384","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} 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":"40106aa0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:42384","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.535471,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} 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":"4010dfd0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"516b3312-8074-4bda-947a-f2fcf3ef1984","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.4608364} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.177696089Z"}]},"request_id":"2824df79-80c7-44d8-9d22-ed52d692bc8b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.4617162} 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":"4010dfd0-178d-11ef-9e06-b78ba83e54a6"},"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:47510","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.109594,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","rebac_allow":false,"scope_allow":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":"40117c10-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.133322860Z"}]},"request_id":"7ac0f884-0be6-4b4f-a17c-ad5ddbd97623","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.4638202} 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":"40106aa0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2d272188-e0df-4fd0-8a6e-f9b73ae07018#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2d272188-e0df-4fd0-8a6e-f9b73ae07018","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"bf0e4f60-d714-499b-b4a1-c8cb7cd56eff","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.4723256} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9? 200 29ms","method":"GET","requestID":"4010dfd0-178d-11ef-9e06-b78ba83e54a6","responseTime":29,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"90d9c1cb-5cef-4e27-a067-7b08b8827a4f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.4730954} 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":"b93164c87b2514e537b75fe6848c7611"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling 200 28ms","method":"POST","requestID":"40117c10-178d-11ef-9e06-b78ba83e54a6","responseTime":28,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503? 200 37ms","method":"GET","requestID":"40106aa0-178d-11ef-9e06-b78ba83e54a6","responseTime":37,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:42384","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4c9dd92d-d2e1-483b-8116-0ba9b383b539","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.4927173} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.461315,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"21/May/2024:16:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.206","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b93164c87b2514e537b75fe6848c7611"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","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 199ms","method":"POST","requestID":"b93164c87b2514e537b75fe6848c7611","responseTime":199,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4016d340-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"851adb87-5ac2-4695-a577-f82479e54503","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.4960358} authorization-1 | {"client_addr":"127.0.0.1:42384","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.780939,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 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":"40174870-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"POST /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling 200 17ms","method":"POST","requestID":"4016d340-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"259208a7c9334014f55d47c2db24f5b1","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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling 200 22ms","method":"POST","requestID":"40174870-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.321059,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"259208a7c9334014f55d47c2db24f5b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ac4ea832-1b45-4a5d-a5f7-9d8583098e0e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.5183454} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.133322860Z"}]},"request_id":"051080c3-123a-4b7a-95f6-15bba09863df","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.5189128} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"259208a7c9334014f55d47c2db24f5b1"},"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:47510","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.816009,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","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 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":"401b1900-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} gateway-1 | {"time_local":"21/May/2024:16:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503? 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":"259208a7c9334014f55d47c2db24f5b1"} device-1 | {"level":"info","message":"GET /devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503? 200 19ms","method":"GET","requestID":"259208a7c9334014f55d47c2db24f5b1","responseTime":19,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling 200 16ms","method":"POST","requestID":"401b1900-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"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":"bacf2a3a-5b79-4ed6-b22d-b0acd1629952"},{"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":"a6681cad-d583-4d11-b515-4d9e9bbf0a99"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a04b4515-ccb7-4618-8c49-57f7d995778c"}]},"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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9"},{"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"fef81687df4656172f5ac831a071f519","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.066885,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:42384","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} 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":"401e2640-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:42384","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656362,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308090,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5MH0.VKTuY6R0IIDBEITWZQdSp_QuyjmY55f53x7iTKlKd1Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fef81687df4656172f5ac831a071f519"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:48.177696089Z"}]},"request_id":"a6439aec-54c5-4f59-98f9-3e5940408c67","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.5438182} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fef81687df4656172f5ac831a071f519"},"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":"21/May/2024:16:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9? 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":"fef81687df4656172f5ac831a071f519"} device-1 | {"level":"info","message":"GET /devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9? 200 14ms","method":"GET","requestID":"fef81687df4656172f5ac831a071f519","responseTime":14,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"f0582560-6415-430e-9154-49c9199711a2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.5493157} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e4724afc-0278-428a-a6ce-dc54b5528e75","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.549559} 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":"401e2640-178d-11ef-9e06-b78ba83e54a6"},"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/33a90548-8f2f-4e94-b7ea-51e03595b51c'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c'"} 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":"401e2640-178d-11ef-9e06-b78ba83e54a6","responseTime":44,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fff0aba8-6ac9-4cb8-b8b6-01930e554ca2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.6161895} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.697024,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","rebac_allow":false,"scope_allow":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":"402a3430-178d-11ef-9e06-b78ba83e54a6"},"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling 200 10ms","method":"POST","requestID":"402a3430-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2b8ed89a-06f6-4ecd-b6c8-c83717a0d4a4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308090.6283383} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.257939,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","object_type":"device","rebac_allow":false,"scope_allow":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":"402c3000-178d-11ef-9e06-b78ba83e54a6"},"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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling 200 8ms","method":"POST","requestID":"402c3000-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling"} device-1 | {"data":{"peerconnection":"33a90548-8f2f-4e94-b7ea-51e03595b51c","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/33a90548-8f2f-4e94-b7ea-51e03595b51c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"33a90548-8f2f-4e94-b7ea-51e03595b51c","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9'"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"b11f6e4978d872f9d5403d94a7d8a50d","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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9"},{"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"b11f6e4978d872f9d5403d94a7d8a50d","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"b11f6e4978d872f9d5403d94a7d8a50d"} device-1 | {"data":{"peerconnection":"33a90548-8f2f-4e94-b7ea-51e03595b51c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"33a90548-8f2f-4e94-b7ea-51e03595b51c","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/33a90548-8f2f-4e94-b7ea-51e03595b51c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"33a90548-8f2f-4e94-b7ea-51e03595b51c","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":"11c3f2f89e0ff7e4af0bd834db18bddb","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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9"},{"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F33a90548-8f2f-4e94-b7ea-51e03595b51c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a4e1356f-4373-4163-b1fd-1af544b2c939","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308092.798934} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.739275,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c","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":"4176ff80-178d-11ef-9e06-b78ba83e54a6"},"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/33a90548-8f2f-4e94-b7ea-51e03595b51c 200 13ms","method":"GET","requestID":"4176ff80-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 46ms","method":"POST","requestID":"11c3f2f89e0ff7e4af0bd834db18bddb","responseTime":46,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch","requestID":"11c3f2f89e0ff7e4af0bd834db18bddb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fd2afbb3-1bf9-44a1-bca2-0c4b4211aa83","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308092.8392215} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.537955,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","object_type":"device","rebac_allow":false,"scope_allow":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":"417cf2f0-178d-11ef-9e06-b78ba83e54a6"},"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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling 200 16ms","method":"POST","requestID":"417cf2f0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7367890d-809e-42a4-9eca-0fd5ea735a78","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308092.8576825} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.772051,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","rebac_allow":false,"scope_allow":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":"41800030-178d-11ef-9e06-b78ba83e54a6"},"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling 200 14ms","method":"POST","requestID":"41800030-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5Mn0.wJ1swCUEXR_WT6Jvkl0UtgeCJWlG0wxaq7O54jeISUU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4d1661cd72e0ebec4f29684aef771011","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.389722,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308092,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5Mn0.wJ1swCUEXR_WT6Jvkl0UtgeCJWlG0wxaq7O54jeISUU"} 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":"4d1661cd72e0ebec4f29684aef771011"},"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/2d272188-e0df-4fd0-8a6e-f9b73ae07018"} gateway-1 | {"time_local":"21/May/2024:16:14:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018 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":"4d1661cd72e0ebec4f29684aef771011"} experiment-1 | {"level":"info","message":"GET /experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018 200 16ms","method":"GET","requestID":"4d1661cd72e0ebec4f29684aef771011","responseTime":16,"status":200,"url":"/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5Mn0.wJ1swCUEXR_WT6Jvkl0UtgeCJWlG0wxaq7O54jeISUU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"59f58943495ba3208e43202d8d9c82cc","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.254271,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308092,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5Mn0.wJ1swCUEXR_WT6Jvkl0UtgeCJWlG0wxaq7O54jeISUU"} 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":"59f58943495ba3208e43202d8d9c82cc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":2.603223,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308092,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5Mn0.wJ1swCUEXR_WT6Jvkl0UtgeCJWlG0wxaq7O54jeISUU"} 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":"4188b2c0-178d-11ef-9e06-b78ba83e54a6"},"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/33a90548-8f2f-4e94-b7ea-51e03595b51c' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"33a90548-8f2f-4e94-b7ea-51e03595b51c","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":"c4b3cf75431f671b31983737a49165d3","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F33a90548-8f2f-4e94-b7ea-51e03595b51c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F33a90548-8f2f-4e94-b7ea-51e03595b51c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"1bcf7b48-c8b4-4540-9783-9a1c319c2af2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308092.938919} 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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9"},{"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c"}}},"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":"3ef9aa7fcd6013c259171c59adcb1959","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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9d5cc77f-a6c6-4b42-8c03-9fedbb60e457","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308092.939508} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9"},{"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c"}}},"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":"4188b2c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"peerconnection":"33a90548-8f2f-4e94-b7ea-51e03595b51c","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/33a90548-8f2f-4e94-b7ea-51e03595b51c 204 69ms","method":"DELETE","requestID":"4188b2c0-178d-11ef-9e06-b78ba83e54a6","responseTime":69,"status":204,"url":"/peerconnections/33a90548-8f2f-4e94-b7ea-51e03595b51c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9fcae5be-77fe-420b-bc9e-b55ba8725d0a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.0118535} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.097506,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9","object_type":"device","rebac_allow":false,"scope_allow":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":"41977fd0-178d-11ef-9e06-b78ba83e54a6"},"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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling 200 14ms","method":"POST","requestID":"41977fd0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2d272188-e0df-4fd0-8a6e-f9b73ae07018': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2d272188-e0df-4fd0-8a6e-f9b73ae07018","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"699e34c5-709d-4047-8d1d-8c0cd08951af","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.0228245} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b49439b9-a4c3-4361-93a7-9fae72622955","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.0238814} 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":"59f58943495ba3208e43202d8d9c82cc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feca730b5-091a-4dd5-aa8b-8ebb35bc1503","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"650ba6ee-3d3c-4402-bba6-6ad8a73c0a4c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.0302699} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.060692,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503","object_type":"device","rebac_allow":false,"scope_allow":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":"419a3ef0-178d-11ef-9e06-b78ba83e54a6"},"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling 200 15ms","method":"POST","requestID":"419a3ef0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/eca730b5-091a-4dd5-aa8b-8ebb35bc1503/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"} gateway-1 | {"time_local":"21/May/2024:16:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.205","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"59f58943495ba3208e43202d8d9c82cc"} gateway-1 | {"time_local":"21/May/2024:16:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2839","request_time":"4.336","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e3f3df3cdc1ad8c1f3e2039165f856b2"} experiment-1 | {"level":"info","message":"DELETE /experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018 204 201ms","method":"DELETE","requestID":"59f58943495ba3208e43202d8d9c82cc","responseTime":201,"status":204,"url":"/experiments/2d272188-e0df-4fd0-8a6e-f9b73ae07018"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 158ms","method":"POST","requestID":"c4b3cf75431f671b31983737a49165d3","responseTime":158,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.163","http_referrer":"","http_user_agent":"node-fetch","requestID":"c4b3cf75431f671b31983737a49165d3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"3ef9aa7fcd6013c259171c59adcb1959","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch","requestID":"3ef9aa7fcd6013c259171c59adcb1959"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5M30.cyLHS3hmFzXD9eDf8urmqIAwmt4HBB8GgYlpnPtPZqk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"d7e73b6b223fdf91b6831239d2877bae","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2745","request_time":"2.887","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"caf62f70a5546481aa32fb44c3a24ee5"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.9028,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308093,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5M30.cyLHS3hmFzXD9eDf8urmqIAwmt4HBB8GgYlpnPtPZqk"} 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":"d7e73b6b223fdf91b6831239d2877bae"},"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/eca730b5-091a-4dd5-aa8b-8ebb35bc1503' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0c0d2424-08c0-4505-ab8f-ac734b4d7f10","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.1245317} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7e73b6b223fdf91b6831239d2877bae"},"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/7ebb03e1-42b8-4b45-ae06-97efb3fc98f9' 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac163544-bc4a-4205-b403-a683f9b0b183","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.13112} 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":"d7e73b6b223fdf91b6831239d2877bae"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"803aec3f-5b55-4c8d-9c01-fa657365deb8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.1439211} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ce23c88-911e-4189-b0fb-c7788c82e047","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.1440837} 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":"d7e73b6b223fdf91b6831239d2877bae"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.143898538Z"}]},"request_id":"cf836386-649e-4dd0-a8e4-cea9559d6759","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.14853} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7e73b6b223fdf91b6831239d2877bae"},"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":"21/May/2024:16:14: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.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d7e73b6b223fdf91b6831239d2877bae"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"d7e73b6b223fdf91b6831239d2877bae","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5M30.cyLHS3hmFzXD9eDf8urmqIAwmt4HBB8GgYlpnPtPZqk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e4e4cacdb9127022823308a721928cbc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.779617,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308093,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5M30.cyLHS3hmFzXD9eDf8urmqIAwmt4HBB8GgYlpnPtPZqk"} 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":"e4e4cacdb9127022823308a721928cbc"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"698e1f32-e7a0-4d9b-ae27-114d448c0f22","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.1721303} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4e4cacdb9127022823308a721928cbc"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"01876e3f-6663-46f0-89dc-e7f1c956fd09","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.177013} 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":"e4e4cacdb9127022823308a721928cbc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"f6b042d3-8a31-4887-9097-1aab2ac5bb93","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.1864212} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"33e0b4f3-8432-412c-bc64-86760d1dcb2a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.1865265} 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":"e4e4cacdb9127022823308a721928cbc"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.186394391Z"}]},"request_id":"d662c659-16ba-4929-8c5f-bf1ceb48654f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.1911192} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4e4cacdb9127022823308a721928cbc"},"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":"21/May/2024:16:14: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.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e4e4cacdb9127022823308a721928cbc"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"e4e4cacdb9127022823308a721928cbc","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5M30.cyLHS3hmFzXD9eDf8urmqIAwmt4HBB8GgYlpnPtPZqk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a0954f872e0a5fc79e68c1119d78b51a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.816958,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308093,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5M30.cyLHS3hmFzXD9eDf8urmqIAwmt4HBB8GgYlpnPtPZqk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0954f872e0a5fc79e68c1119d78b51a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.143898538Z"}]},"request_id":"b6706706-e2d1-4fe7-81b1-7fcdb82d2ae5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.6854725} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0954f872e0a5fc79e68c1119d78b51a"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb074606-0489-437c-b198-da25680f1745","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.691661} 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":"a0954f872e0a5fc79e68c1119d78b51a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.143898538Z"}]},"request_id":"13b0eb24-239c-4097-ae00-68c60cfdc774","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308093.7134638} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0954f872e0a5fc79e68c1119d78b51a"},"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/c831f5ae-2ba9-47ec-b2d1-71996c951939 200 45ms","method":"PATCH","requestID":"a0954f872e0a5fc79e68c1119d78b51a","responseTime":45,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939"} gateway-1 | {"time_local":"21/May/2024:16:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.051","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a0954f872e0a5fc79e68c1119d78b51a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5M30.cyLHS3hmFzXD9eDf8urmqIAwmt4HBB8GgYlpnPtPZqk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"bf6e57991ad3d722c1e6b66859296f69","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.928085,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308093,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5M30.cyLHS3hmFzXD9eDf8urmqIAwmt4HBB8GgYlpnPtPZqk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bf6e57991ad3d722c1e6b66859296f69"},"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":"21/May/2024:16:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/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":"bf6e57991ad3d722c1e6b66859296f69"} device-1 | {"level":"info","message":"POST /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/websocket 200 22ms","method":"POST","requestID":"bf6e57991ad3d722c1e6b66859296f69","responseTime":22,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939' 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":"7dee9a2487a6a81115e75bbf01824949","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:14:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6880c421-8690-471a-8eeb-9772b429d2fb/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":"7dee9a2487a6a81115e75bbf01824949"} device-1 | {"level":"info","message":"OPTIONS /devices/6880c421-8690-471a-8eeb-9772b429d2fb/websocket 200 1ms","method":"OPTIONS","requestID":"7dee9a2487a6a81115e75bbf01824949","responseTime":1,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"590998f59a4af0ead790ad959b6d3238","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.133032,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"590998f59a4af0ead790ad959b6d3238"},"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/6880c421-8690-471a-8eeb-9772b429d2fb/websocket 200 39ms","method":"POST","requestID":"590998f59a4af0ead790ad959b6d3238","responseTime":39,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb/websocket"} gateway-1 | {"time_local":"21/May/2024:16:14:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6880c421-8690-471a-8eeb-9772b429d2fb/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":"590998f59a4af0ead790ad959b6d3238"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c298a6dbfb2d463f9ae496b66fb06604","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.225305,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c298a6dbfb2d463f9ae496b66fb06604"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.143898538Z"}]},"request_id":"52525af2-3c9e-4f44-ad03-d7b3640d55b9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.2889993} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c298a6dbfb2d463f9ae496b66fb06604"},"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/c831f5ae-2ba9-47ec-b2d1-71996c951939? 200 21ms","method":"GET","requestID":"c298a6dbfb2d463f9ae496b66fb06604","responseTime":21,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939?"} gateway-1 | {"time_local":"21/May/2024:16:14:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939? 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":"c298a6dbfb2d463f9ae496b66fb06604"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"277b084b794eafb42e11dfa17d1e5029","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.209044,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"277b084b794eafb42e11dfa17d1e5029"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.186394391Z"}]},"request_id":"5ad46726-c1fd-4415-a46c-63612cd80f39","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.319777} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"277b084b794eafb42e11dfa17d1e5029"},"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/6880c421-8690-471a-8eeb-9772b429d2fb? 200 18ms","method":"GET","requestID":"277b084b794eafb42e11dfa17d1e5029","responseTime":18,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb?"} gateway-1 | {"time_local":"21/May/2024:16:14:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6880c421-8690-471a-8eeb-9772b429d2fb? 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":"277b084b794eafb42e11dfa17d1e5029"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1a231a543c03c578188976aba18b59c3","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:47510","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.362613,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} 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":"1a231a543c03c578188976aba18b59c3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"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:47510","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.026827,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4303ba00-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.309182,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} 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":"4303e110-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.143898538Z"}]},"request_id":"cd39c16c-1baf-4cbb-a0de-95fe4054c577","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.4029925} 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":"4303ba00-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.186394391Z"}]},"request_id":"e70d6157-0780-4a20-b6e5-720239752943","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.4103076} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939? 200 20ms","method":"GET","requestID":"4303ba00-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4303e110-178d-11ef-9e06-b78ba83e54a6"},"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/6880c421-8690-471a-8eeb-9772b429d2fb? 200 22ms","method":"GET","requestID":"4303e110-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"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/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.877848,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} 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":"430fc7f0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.950416,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} 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":"43101610-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b367e797-9596-4ef2-b5d3-598a90d4ce21","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.4894893} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.143898538Z"}]},"request_id":"bfd0a425-dcfc-44da-8374-60fc02b21d6f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.4909997} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.762368,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","rebac_allow":false,"scope_allow":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":"43106430-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} 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":"430fc7f0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.186394391Z"}]},"request_id":"02f542e4-b91e-476e-9441-5c47c0aaa1ad","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.4925842} 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":"43101610-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F77c08402-2756-48a8-8745-696c47c32870#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F77c08402-2756-48a8-8745-696c47c32870","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"2e0a334f-9add-46f3-8e16-5c24dbd20b7e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.500715} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"577163a1-498a-475c-9596-67fca7d7f85a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.5010693} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"1a231a543c03c578188976aba18b59c3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"POST /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling 200 28ms","method":"POST","requestID":"43106430-178d-11ef-9e06-b78ba83e54a6","responseTime":28,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939? 200 34ms","method":"GET","requestID":"430fc7f0-178d-11ef-9e06-b78ba83e54a6","responseTime":34,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6880c421-8690-471a-8eeb-9772b429d2fb? 200 33ms","method":"GET","requestID":"43101610-178d-11ef-9e06-b78ba83e54a6","responseTime":33,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5cb16f9e-2a39-4310-a2e0-34f1068b420a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.516061} experiment-1 | {"data":{"experiment":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.335795,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} experiment-1 | {"level":"info","message":"POST /experiments? 201 185ms","method":"POST","requestID":"1a231a543c03c578188976aba18b59c3","responseTime":185,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"21/May/2024:16:14:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1a231a543c03c578188976aba18b59c3"} 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":"43159450-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"464fad4e-490e-46de-9d1b-1bcfcc7175ac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.522089} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.022618,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","rebac_allow":false,"scope_allow":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":"43163090-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"56052ca62b0241f208126cb40729a7d8","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/6880c421-8690-471a-8eeb-9772b429d2fb/signaling 200 18ms","method":"POST","requestID":"43159450-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling 200 18ms","method":"POST","requestID":"43163090-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.943083,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56052ca62b0241f208126cb40729a7d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.143898538Z"}]},"request_id":"f1764322-ac1a-4d7b-9157-e74540bca2d2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.5395343} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"24efcf3d-c274-49ae-b960-d271b4da4f5f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.5396886} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56052ca62b0241f208126cb40729a7d8"},"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:47510","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.428024,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","rebac_allow":false,"scope_allow":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":"431964e0-178d-11ef-9e06-b78ba83e54a6"},"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":"21/May/2024:16:14:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939? 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":"56052ca62b0241f208126cb40729a7d8"} device-1 | {"level":"info","message":"GET /devices/c831f5ae-2ba9-47ec-b2d1-71996c951939? 200 16ms","method":"GET","requestID":"56052ca62b0241f208126cb40729a7d8","responseTime":16,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6880c421-8690-471a-8eeb-9772b429d2fb/signaling 200 12ms","method":"POST","requestID":"431964e0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"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":"9f9fcf90-2232-4872-b1a0-dcfe59e083d4"},{"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":"cea5db9c-4bae-4efd-b449-121114206c5c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"185cc712-69e0-4035-b23d-3304679317b2"}]},"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/6880c421-8690-471a-8eeb-9772b429d2fb"},{"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/c831f5ae-2ba9-47ec-b2d1-71996c951939"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"af0700142aabbd40e273eb04eafdba80","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.727458,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} 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":"431bd5e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.887167,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308095,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5NX0.LI5xZtox0GVF1fBEFaxPM1db7LKYvWuXkSMnHnVNh6k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af0700142aabbd40e273eb04eafdba80"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:53.186394391Z"}]},"request_id":"1fe87f29-d4bf-4660-8ccd-d577e0415c75","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.560711} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af0700142aabbd40e273eb04eafdba80"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"b6c1ce6e-2700-4053-a33c-76ef3efeacf7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.5661027} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"246a79ac-600d-460b-815e-31dcd9881056","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.5662622} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:14:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6880c421-8690-471a-8eeb-9772b429d2fb? 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":"af0700142aabbd40e273eb04eafdba80"} device-1 | {"level":"info","message":"GET /devices/6880c421-8690-471a-8eeb-9772b429d2fb? 200 16ms","method":"GET","requestID":"af0700142aabbd40e273eb04eafdba80","responseTime":16,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb?"} 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":"431bd5e0-178d-11ef-9e06-b78ba83e54a6"},"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/9ba9c165-ac89-43e0-84c0-1632d4a0f05b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 36ms","method":"POST","requestID":"431bd5e0-178d-11ef-9e06-b78ba83e54a6","responseTime":36,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e454fae7-8de8-4a9e-82f6-a0ccf64552fd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.6224244} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.196591,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","rebac_allow":false,"scope_allow":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":"43263620-178d-11ef-9e06-b78ba83e54a6"},"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/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling 200 8ms","method":"POST","requestID":"43263620-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0e907f9b-b9e7-420f-ad1f-d627a1195605","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308095.6331} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.385752,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","rebac_allow":false,"scope_allow":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":"4327e3d0-178d-11ef-9e06-b78ba83e54a6"},"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/6880c421-8690-471a-8eeb-9772b429d2fb/signaling 200 9ms","method":"POST","requestID":"4327e3d0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb/signaling"} device-1 | {"data":{"peerconnection":"9ba9c165-ac89-43e0-84c0-1632d4a0f05b","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/9ba9c165-ac89-43e0-84c0-1632d4a0f05b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9ba9c165-ac89-43e0-84c0-1632d4a0f05b","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":"9cec7d6edf4562eed4bd6f81496d6b20","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb'"} 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/6880c421-8690-471a-8eeb-9772b429d2fb"},{"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/c831f5ae-2ba9-47ec-b2d1-71996c951939"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"9cec7d6edf4562eed4bd6f81496d6b20","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"9cec7d6edf4562eed4bd6f81496d6b20"} device-1 | {"data":{"peerconnection":"9ba9c165-ac89-43e0-84c0-1632d4a0f05b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"9ba9c165-ac89-43e0-84c0-1632d4a0f05b","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/9ba9c165-ac89-43e0-84c0-1632d4a0f05b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9ba9c165-ac89-43e0-84c0-1632d4a0f05b","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":"8502089100ae95f0e167b65195b3c6ad","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/6880c421-8690-471a-8eeb-9772b429d2fb"},{"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/c831f5ae-2ba9-47ec-b2d1-71996c951939"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9ba9c165-ac89-43e0-84c0-1632d4a0f05b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a892ca33-a354-4091-897a-075614122a93","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308097.7968745} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.73922,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b","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":"4471a1e0-178d-11ef-9e06-b78ba83e54a6"},"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/9ba9c165-ac89-43e0-84c0-1632d4a0f05b 200 13ms","method":"GET","requestID":"4471a1e0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"8502089100ae95f0e167b65195b3c6ad","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14: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.051","http_referrer":"","http_user_agent":"node-fetch","requestID":"8502089100ae95f0e167b65195b3c6ad"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"494c0e04-6992-4a16-b1d6-d04cd7bb3da8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308097.8374403} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.825144,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","rebac_allow":false,"scope_allow":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":"44776e40-178d-11ef-9e06-b78ba83e54a6"},"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/6880c421-8690-471a-8eeb-9772b429d2fb/signaling 200 16ms","method":"POST","requestID":"44776e40-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3966aa54-c5c0-41e2-913e-106b4f704148","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308097.8548098} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.88199,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","rebac_allow":false,"scope_allow":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":"447a7b80-178d-11ef-9e06-b78ba83e54a6"},"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/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling 200 14ms","method":"POST","requestID":"447a7b80-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5N30.OLF_UqJADciVI7TnTUQ8cnqG3avIuJ33uRLRTzN-EdE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"628f92b05770ed04e76daebb3861267f","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/77c08402-2756-48a8-8745-696c47c32870"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.306681,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308097,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5N30.OLF_UqJADciVI7TnTUQ8cnqG3avIuJ33uRLRTzN-EdE"} 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":"628f92b05770ed04e76daebb3861267f"},"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/77c08402-2756-48a8-8745-696c47c32870"} gateway-1 | {"time_local":"21/May/2024:16:14:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/77c08402-2756-48a8-8745-696c47c32870 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":"628f92b05770ed04e76daebb3861267f"} experiment-1 | {"level":"info","message":"GET /experiments/77c08402-2756-48a8-8745-696c47c32870 200 16ms","method":"GET","requestID":"628f92b05770ed04e76daebb3861267f","responseTime":16,"status":200,"url":"/experiments/77c08402-2756-48a8-8745-696c47c32870"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5N30.OLF_UqJADciVI7TnTUQ8cnqG3avIuJ33uRLRTzN-EdE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2ea3dbee6164ba364b39e80741748462","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/77c08402-2756-48a8-8745-696c47c32870"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.316737,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308097,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5N30.OLF_UqJADciVI7TnTUQ8cnqG3avIuJ33uRLRTzN-EdE"} 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":"2ea3dbee6164ba364b39e80741748462"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.176367,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308097,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5N30.OLF_UqJADciVI7TnTUQ8cnqG3avIuJ33uRLRTzN-EdE"} 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":"4483f160-178d-11ef-9e06-b78ba83e54a6"},"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/9ba9c165-ac89-43e0-84c0-1632d4a0f05b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9ba9c165-ac89-43e0-84c0-1632d4a0f05b","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9ba9c165-ac89-43e0-84c0-1632d4a0f05b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9ba9c165-ac89-43e0-84c0-1632d4a0f05b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"d8c05a6a-4d44-4521-be16-8a669c26c1e9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308097.9355063} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"596efe59773da71587a99d1925fcd51b","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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"af6617b5-c9a2-4177-828f-98780cadc2a6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308097.9358773} 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/6880c421-8690-471a-8eeb-9772b429d2fb"},{"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/c831f5ae-2ba9-47ec-b2d1-71996c951939"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b"}}},"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":"91eede8e19c19f7da5a9bca25778c59e","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4483f160-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb"},{"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/c831f5ae-2ba9-47ec-b2d1-71996c951939"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"9ba9c165-ac89-43e0-84c0-1632d4a0f05b","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/9ba9c165-ac89-43e0-84c0-1632d4a0f05b 204 64ms","method":"DELETE","requestID":"4483f160-178d-11ef-9e06-b78ba83e54a6","responseTime":64,"status":204,"url":"/peerconnections/9ba9c165-ac89-43e0-84c0-1632d4a0f05b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/77c08402-2756-48a8-8745-696c47c32870"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6880c421-8690-471a-8eeb-9772b429d2fb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b0b8ddba-91b1-468c-b0c8-06049a75448f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.0060296} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.96985,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6880c421-8690-471a-8eeb-9772b429d2fb","object_type":"device","rebac_allow":false,"scope_allow":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":"449185f0-178d-11ef-9e06-b78ba83e54a6"},"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/6880c421-8690-471a-8eeb-9772b429d2fb/signaling 200 15ms","method":"POST","requestID":"449185f0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/6880c421-8690-471a-8eeb-9772b429d2fb/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F77c08402-2756-48a8-8745-696c47c32870': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F77c08402-2756-48a8-8745-696c47c32870","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"aec62d2c-ccbb-4412-b631-c04782015d43","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.014073} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d071bf41-7abc-418c-8b81-b7c279e897fa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.0145903} 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":"2ea3dbee6164ba364b39e80741748462"},"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:47510","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc831f5ae-2ba9-47ec-b2d1-71996c951939","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a66982c9-027b-442c-a138-902a90c2e1bc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.0236177} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.61329,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939","object_type":"device","rebac_allow":false,"scope_allow":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":"44944510-178d-11ef-9e06-b78ba83e54a6"},"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/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling 200 14ms","method":"POST","requestID":"44944510-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/c831f5ae-2ba9-47ec-b2d1-71996c951939/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/77c08402-2756-48a8-8745-696c47c32870"} gateway-1 | {"time_local":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/77c08402-2756-48a8-8745-696c47c32870 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":"2ea3dbee6164ba364b39e80741748462"} gateway-1 | {"time_local":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2839","request_time":"4.330","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4cde2d6e7c96d3b6ffb26e1d84b326a7"} experiment-1 | {"level":"info","message":"DELETE /experiments/77c08402-2756-48a8-8745-696c47c32870 204 185ms","method":"DELETE","requestID":"2ea3dbee6164ba364b39e80741748462","responseTime":185,"status":204,"url":"/experiments/77c08402-2756-48a8-8745-696c47c32870"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"596efe59773da71587a99d1925fcd51b","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"596efe59773da71587a99d1925fcd51b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"91eede8e19c19f7da5a9bca25778c59e","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"91eede8e19c19f7da5a9bca25778c59e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"99075bf57d119e2aee42aa49f252bbc8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2745","request_time":"2.836","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"356b4839ae5eba2e291d29e2d26aa6ae"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.753628,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"99075bf57d119e2aee42aa49f252bbc8"},"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/c831f5ae-2ba9-47ec-b2d1-71996c951939' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d79e2e68-30d4-4224-b251-2c39a683674c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.1086571} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"99075bf57d119e2aee42aa49f252bbc8"},"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/6880c421-8690-471a-8eeb-9772b429d2fb' 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20703322-b9b1-41cf-87be-1ab0fb43041f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.1142259} 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":"99075bf57d119e2aee42aa49f252bbc8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"5124ebe2-5d0e-47ae-81ed-14d692fc6366","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.123133} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5784023d-baf9-4db7-9b31-4cb07948d016","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.123401} 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":"99075bf57d119e2aee42aa49f252bbc8"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.123102680Z"}]},"request_id":"2a3ec780-8c32-4f60-a129-8db3379e20c9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.1274626} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"99075bf57d119e2aee42aa49f252bbc8"},"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":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"99075bf57d119e2aee42aa49f252bbc8"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"99075bf57d119e2aee42aa49f252bbc8","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6a9ce0dee190a53d7233b2b17cf153b3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.735578,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"6a9ce0dee190a53d7233b2b17cf153b3"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"950cb848-40f0-4541-9986-62e4c593a59f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.1510184} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6a9ce0dee190a53d7233b2b17cf153b3"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"422b50d2-d19e-42b9-99df-4c599f2ff4a0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.15537} 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":"6a9ce0dee190a53d7233b2b17cf153b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"3b0b26eb-b52a-4f6f-8ccd-8c2aa874ee35","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.1690164} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2777fc2d-c6b4-45a9-a057-5f81df058226","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.169134} 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":"6a9ce0dee190a53d7233b2b17cf153b3"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.168986792Z"}]},"request_id":"113781dc-b641-41b7-bc4f-07ab11ee60c7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.1732323} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6a9ce0dee190a53d7233b2b17cf153b3"},"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":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6a9ce0dee190a53d7233b2b17cf153b3"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"6a9ce0dee190a53d7233b2b17cf153b3","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"7801637391ef65e94309e0fad667e4e7","responseTime":8,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","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":"7f44088365788109f7d4b6f0ed557216","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.886847,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7801637391ef65e94309e0fad667e4e7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.121478,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"7f44088365788109f7d4b6f0ed557216"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.123102680Z"}]},"request_id":"2f68913f-5a82-40ca-a37e-2ef941fd76fa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.6643176} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7801637391ef65e94309e0fad667e4e7"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.168986792Z"}]},"request_id":"1c95687c-f647-4e62-b8b9-b3973a25443c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.6653254} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7f44088365788109f7d4b6f0ed557216"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7720a722-d132-4321-aefc-83f4cf9643f0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.6688704} 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":"7801637391ef65e94309e0fad667e4e7"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ed981ec0-7eae-4d86-ba16-01392ab8131c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.6704152} 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":"7f44088365788109f7d4b6f0ed557216"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.168986792Z"}]},"request_id":"0928efc6-08da-4bb4-8937-cd8d6e9e0c97","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.6733322} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7f44088365788109f7d4b6f0ed557216"},"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":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d88e8654-497e-4a6d-822d-682fae1041a7 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.033","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7f44088365788109f7d4b6f0ed557216"} device-1 | {"level":"info","message":"PATCH /devices/d88e8654-497e-4a6d-822d-682fae1041a7 200 20ms","method":"PATCH","requestID":"7f44088365788109f7d4b6f0ed557216","responseTime":20,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"53d72d435be776f7345574dabd5cc42b","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.757143,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"53d72d435be776f7345574dabd5cc42b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.123102680Z"}]},"request_id":"80bc25fa-f224-4ba1-86df-2574ff98be54","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.7041771} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7801637391ef65e94309e0fad667e4e7"},"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":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8d500005-0a8a-4018-9a4b-3050ec01e293 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.065","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7801637391ef65e94309e0fad667e4e7"} device-1 | {"level":"info","message":"PATCH /devices/8d500005-0a8a-4018-9a4b-3050ec01e293 200 56ms","method":"PATCH","requestID":"7801637391ef65e94309e0fad667e4e7","responseTime":56,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d88e8654-497e-4a6d-822d-682fae1041a7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"53d72d435be776f7345574dabd5cc42b"} device-1 | {"level":"info","message":"POST /devices/d88e8654-497e-4a6d-822d-682fae1041a7/websocket 200 30ms","method":"POST","requestID":"53d72d435be776f7345574dabd5cc42b","responseTime":30,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7/websocket"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d8b1b9d0fd2b8c818de2e9697787e84d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.03872,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"d8b1b9d0fd2b8c818de2e9697787e84d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"device 'http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/8d500005-0a8a-4018-9a4b-3050ec01e293/websocket 200 19ms","method":"POST","requestID":"d8b1b9d0fd2b8c818de2e9697787e84d","responseTime":19,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293/websocket"} gateway-1 | {"time_local":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8d500005-0a8a-4018-9a4b-3050ec01e293/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":"d8b1b9d0fd2b8c818de2e9697787e84d"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6abb8ee3ee4b42fc09692ed415bf9381","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.886258,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"6abb8ee3ee4b42fc09692ed415bf9381"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.123102680Z"}]},"request_id":"8a982583-c185-4a5e-8eee-b8f8523188c3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.7595627} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6abb8ee3ee4b42fc09692ed415bf9381"},"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":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8d500005-0a8a-4018-9a4b-3050ec01e293? 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":"6abb8ee3ee4b42fc09692ed415bf9381"} device-1 | {"level":"info","message":"GET /devices/8d500005-0a8a-4018-9a4b-3050ec01e293? 200 11ms","method":"GET","requestID":"6abb8ee3ee4b42fc09692ed415bf9381","responseTime":11,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"742f77372959b4cf7e6dbe013ae27ef0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.464945,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"742f77372959b4cf7e6dbe013ae27ef0"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.168986792Z"}]},"request_id":"f3807219-f2b7-48be-a5f2-473d49bd8cd7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308098.7763522} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"742f77372959b4cf7e6dbe013ae27ef0"},"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/d88e8654-497e-4a6d-822d-682fae1041a7? 200 11ms","method":"GET","requestID":"742f77372959b4cf7e6dbe013ae27ef0","responseTime":11,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7?"} gateway-1 | {"time_local":"21/May/2024:16:14:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d88e8654-497e-4a6d-822d-682fae1041a7? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"742f77372959b4cf7e6dbe013ae27ef0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"80407e02d453707d98f586137b96c44f","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:47510","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.16399,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"80407e02d453707d98f586137b96c44f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"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:47510","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.24302,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"454322b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.306787,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"454370d0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.123102680Z"}]},"request_id":"e24266d6-0e97-4d94-b17d-62d31269708f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.1763592} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"454322b0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.168986792Z"}]},"request_id":"d60fdab8-b6cf-4ac5-bec2-28576acc5052","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.177627} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"454370d0-178d-11ef-9e06-b78ba83e54a6"},"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/8d500005-0a8a-4018-9a4b-3050ec01e293? 200 23ms","method":"GET","requestID":"454322b0-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d88e8654-497e-4a6d-822d-682fae1041a7? 200 22ms","method":"GET","requestID":"454370d0-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"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:47510","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.336952,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"454ff3f0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.672252,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"45504210-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.922855,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1f20c6fe-12b0-4a3e-9988-9e5d3bfeb3bd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.2620952} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.123102680Z"}]},"request_id":"9105c16a-833e-4b58-90e3-25309f6edbc1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.2640061} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","rebac_allow":false,"scope_allow":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":"4550b740-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} 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":"454ff3f0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.168986792Z"}]},"request_id":"e293c6d8-50fa-49a2-8140-a48833fc272d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.267589} 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":"45504210-178d-11ef-9e06-b78ba83e54a6"},"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/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling 200 31ms","method":"POST","requestID":"4550b740-178d-11ef-9e06-b78ba83e54a6","responseTime":31,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8d500005-0a8a-4018-9a4b-3050ec01e293? 200 38ms","method":"GET","requestID":"454ff3f0-178d-11ef-9e06-b78ba83e54a6","responseTime":38,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c421a7f-e05b-4050-8b10-788dc10b0c79","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.283115} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7b4f289a-99e2-4092-bcaf-ac8bb80c3a15#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7b4f289a-99e2-4092-bcaf-ac8bb80c3a15","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"f56ea3e4-e456-4943-bd51-055dcd53ce29","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.2838638} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d88e8654-497e-4a6d-822d-682fae1041a7? 200 39ms","method":"GET","requestID":"45504210-178d-11ef-9e06-b78ba83e54a6","responseTime":39,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7?"} 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":"80407e02d453707d98f586137b96c44f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"23c66827-41f5-40aa-9842-c1ebfe4cfe4e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.2960072} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.799625,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} gateway-1 | {"time_local":"21/May/2024:16:14:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.518","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"80407e02d453707d98f586137b96c44f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 512ms","method":"POST","requestID":"80407e02d453707d98f586137b96c44f","responseTime":512,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","rebac_allow":false,"scope_allow":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":"45565c90-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"28a87fa2-05d4-45fe-af5c-1b7b527604a9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.3047757} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OX0.bRtn3Q_KDhXl-xZf9ksZB0TppysANqOPW5HBKcFKuAE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2e29a54684134c63cbd32bc04d6004f1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d88e8654-497e-4a6d-822d-682fae1041a7/signaling 200 19ms","method":"POST","requestID":"45565c90-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7/signaling"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":10.846,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","rebac_allow":false,"scope_allow":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":"4556d1c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.859869,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308099,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OX0.bRtn3Q_KDhXl-xZf9ksZB0TppysANqOPW5HBKcFKuAE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e29a54684134c63cbd32bc04d6004f1"},"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/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling 200 29ms","method":"POST","requestID":"4556d1c0-178d-11ef-9e06-b78ba83e54a6","responseTime":29,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.123102680Z"}]},"request_id":"09372cdd-75a3-4df1-9bdb-be16d0d63ba7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.3218915} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e29a54684134c63cbd32bc04d6004f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} gateway-1 | {"time_local":"21/May/2024:16:14:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8d500005-0a8a-4018-9a4b-3050ec01e293? 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":"2e29a54684134c63cbd32bc04d6004f1"} device-1 | {"level":"info","message":"GET /devices/8d500005-0a8a-4018-9a4b-3050ec01e293? 200 19ms","method":"GET","requestID":"2e29a54684134c63cbd32bc04d6004f1","responseTime":19,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8a31d819-ab28-4a4b-98fb-3c9320469eb8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.3295884} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.790923,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","rebac_allow":false,"scope_allow":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":"455bdad0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OX0.bRtn3Q_KDhXl-xZf9ksZB0TppysANqOPW5HBKcFKuAE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6d4914cab34bfb9bdda1c99958c37c7f","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/d88e8654-497e-4a6d-822d-682fae1041a7/signaling 200 10ms","method":"POST","requestID":"455bdad0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"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":"fe9e26ba-3a92-41b0-acf6-e4898ed81ee7"},{"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":"eef94444-396a-4d86-8afd-2c961bcc8e57"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"59d28eec-56c0-48c1-b428-028bbe34ee97"}]},"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/8d500005-0a8a-4018-9a4b-3050ec01e293"},{"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/d88e8654-497e-4a6d-822d-682fae1041a7"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.731737,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308099,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OX0.bRtn3Q_KDhXl-xZf9ksZB0TppysANqOPW5HBKcFKuAE"} 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":"6d4914cab34bfb9bdda1c99958c37c7f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.614984,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308098,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODA5OH0.pJ4y5e-ft3IuGXJ83uY1R5nGnT9JlFPW8yLvyxQsoRo"} 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":"455dd6a0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:14:58.168986792Z"}]},"request_id":"fd717d22-df68-4cbd-891a-71ed3208b149","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.3418722} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6d4914cab34bfb9bdda1c99958c37c7f"},"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/d88e8654-497e-4a6d-822d-682fae1041a7? 200 12ms","method":"GET","requestID":"6d4914cab34bfb9bdda1c99958c37c7f","responseTime":12,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7?"} gateway-1 | {"time_local":"21/May/2024:16:14:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d88e8654-497e-4a6d-822d-682fae1041a7? 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":"6d4914cab34bfb9bdda1c99958c37c7f"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"26d6fd38-9482-4aa1-891e-9f04bf6aefa4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.3505878} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"086800f5-0b1e-4b47-9072-ba6ce60aa38e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.3508275} 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":"455dd6a0-178d-11ef-9e06-b78ba83e54a6"},"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/1d796558-95ed-4b3c-90a5-77072d1fec60'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60'"} 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":"455dd6a0-178d-11ef-9e06-b78ba83e54a6","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2061dba8-f4cb-4ce9-b182-8abe98894d7b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.4060397} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.369574,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","rebac_allow":false,"scope_allow":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":"45674c80-178d-11ef-9e06-b78ba83e54a6"},"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/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling 200 10ms","method":"POST","requestID":"45674c80-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9dd9ef20-1c46-4da1-b583-67f92f063b9e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308099.415869} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.291419,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:14:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","rebac_allow":false,"scope_allow":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":"4568fa30-178d-11ef-9e06-b78ba83e54a6"},"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/d88e8654-497e-4a6d-822d-682fae1041a7/signaling 200 10ms","method":"POST","requestID":"4568fa30-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7/signaling"} device-1 | {"data":{"peerconnection":"1d796558-95ed-4b3c-90a5-77072d1fec60","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1d796558-95ed-4b3c-90a5-77072d1fec60","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/1d796558-95ed-4b3c-90a5-77072d1fec60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1d796558-95ed-4b3c-90a5-77072d1fec60","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":"ca3aff7bf4c082525ade5ebb7be90dcc","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/8d500005-0a8a-4018-9a4b-3050ec01e293"},{"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/d88e8654-497e-4a6d-822d-682fae1041a7"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"ca3aff7bf4c082525ade5ebb7be90dcc","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"ca3aff7bf4c082525ade5ebb7be90dcc"} device-1 | {"data":{"peerconnection":"1d796558-95ed-4b3c-90a5-77072d1fec60","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1d796558-95ed-4b3c-90a5-77072d1fec60","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/1d796558-95ed-4b3c-90a5-77072d1fec60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1d796558-95ed-4b3c-90a5-77072d1fec60","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":"5455a936ed65f2173299c16ebf85bb21","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/8d500005-0a8a-4018-9a4b-3050ec01e293"},{"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/d88e8654-497e-4a6d-822d-682fae1041a7"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1d796558-95ed-4b3c-90a5-77072d1fec60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d60f31f7-1b6c-46b7-aca5-e2ba9b44575c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.5081036} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.66002,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60","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":"46a7bbc0-178d-11ef-9e06-b78ba83e54a6"},"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/1d796558-95ed-4b3c-90a5-77072d1fec60 200 15ms","method":"GET","requestID":"46a7bbc0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"5455a936ed65f2173299c16ebf85bb21","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch","requestID":"5455a936ed65f2173299c16ebf85bb21"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea5bb600-38f9-4412-93e6-33af5378cf7e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.5447996} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.775721,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","rebac_allow":false,"scope_allow":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":"46ad8820-178d-11ef-9e06-b78ba83e54a6"},"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/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling 200 14ms","method":"POST","requestID":"46ad8820-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0bcf80fb-70e0-412c-b22f-17022cbbd224","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.561434} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.839331,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","rebac_allow":false,"scope_allow":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":"46aff920-178d-11ef-9e06-b78ba83e54a6"},"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/d88e8654-497e-4a6d-822d-682fae1041a7/signaling 200 14ms","method":"POST","requestID":"46aff920-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1d20d4789bb4243fe4952445e9fac91d","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.291722,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308101,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY"} 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":"1d20d4789bb4243fe4952445e9fac91d"},"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/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"} experiment-1 | {"level":"info","message":"GET /experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15 200 17ms","method":"GET","requestID":"1d20d4789bb4243fe4952445e9fac91d","responseTime":17,"status":200,"url":"/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"} gateway-1 | {"time_local":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15 HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1d20d4789bb4243fe4952445e9fac91d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"69c7b7f509158f21fa096b7617f7bd81","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.451855,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308101,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY"} 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":"69c7b7f509158f21fa096b7617f7bd81"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.167935,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308101,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY"} 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":"46bc0710-178d-11ef-9e06-b78ba83e54a6"},"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/1d796558-95ed-4b3c-90a5-77072d1fec60' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1d796558-95ed-4b3c-90a5-77072d1fec60","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1d796558-95ed-4b3c-90a5-77072d1fec60': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1d796558-95ed-4b3c-90a5-77072d1fec60","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"b4a7e965-0def-4332-93e6-e438f8fe6114","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.6580648} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"83ee0d3ac347ebd3eab44972e0df665e","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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"300a1810-529f-44ad-88b1-513611c8e46a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.6586971} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4d9e64c3f90631b3c658fe6e51866357","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293"},{"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/d88e8654-497e-4a6d-822d-682fae1041a7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60"}}},"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":"46bc0710-178d-11ef-9e06-b78ba83e54a6"},"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":"closed","url":"http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293"},{"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/d88e8654-497e-4a6d-822d-682fae1041a7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"1d796558-95ed-4b3c-90a5-77072d1fec60","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/1d796558-95ed-4b3c-90a5-77072d1fec60 204 60ms","method":"DELETE","requestID":"46bc0710-178d-11ef-9e06-b78ba83e54a6","responseTime":60,"status":204,"url":"/peerconnections/1d796558-95ed-4b3c-90a5-77072d1fec60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d500005-0a8a-4018-9a4b-3050ec01e293","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ab0ad425-f7eb-4958-84e0-654a21c140ce","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.7244272} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.476268,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8d500005-0a8a-4018-9a4b-3050ec01e293","object_type":"device","rebac_allow":false,"scope_allow":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":"46c8d850-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7b4f289a-99e2-4092-bcaf-ac8bb80c3a15': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7b4f289a-99e2-4092-bcaf-ac8bb80c3a15","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"a9274da4-0315-440c-b459-93350e7746f1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.7319567} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling 200 16ms","method":"POST","requestID":"46c8d850-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/8d500005-0a8a-4018-9a4b-3050ec01e293/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2d6cf671-dbe1-4d04-8254-94879e615a9a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.732674} 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":"69c7b7f509158f21fa096b7617f7bd81"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd88e8654-497e-4a6d-822d-682fae1041a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"377a97de-f754-42ee-9608-6a1e06489353","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.7429543} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.237387,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d88e8654-497e-4a6d-822d-682fae1041a7","object_type":"device","rebac_allow":false,"scope_allow":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":"46cbbe80-178d-11ef-9e06-b78ba83e54a6"},"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/d88e8654-497e-4a6d-822d-682fae1041a7/signaling 200 15ms","method":"POST","requestID":"46cbbe80-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/d88e8654-497e-4a6d-822d-682fae1041a7/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"} gateway-1 | {"time_local":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"69c7b7f509158f21fa096b7617f7bd81"} gateway-1 | {"time_local":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2745","request_time":"3.086","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"905f26395958ae698b75491eba941137"} gateway-1 | {"time_local":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2747","request_time":"3.067","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0750d4fc3b728ac4fe5508ca6ec60568"} experiment-1 | {"level":"info","message":"DELETE /experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15 204 185ms","method":"DELETE","requestID":"69c7b7f509158f21fa096b7617f7bd81","responseTime":185,"status":204,"url":"/experiments/7b4f289a-99e2-4092-bcaf-ac8bb80c3a15"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 143ms","method":"POST","requestID":"83ee0d3ac347ebd3eab44972e0df665e","responseTime":143,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"83ee0d3ac347ebd3eab44972e0df665e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"4d9e64c3f90631b3c658fe6e51866357","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"4d9e64c3f90631b3c658fe6e51866357"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"834b00c561c640ddebb919ca7109f530","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/8d500005-0a8a-4018-9a4b-3050ec01e293' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.996461,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308101,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY"} 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":"834b00c561c640ddebb919ca7109f530"},"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/d88e8654-497e-4a6d-822d-682fae1041a7' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2a0c52be-c581-4c6d-9454-7c92a4e5161f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.8291185} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"834b00c561c640ddebb919ca7109f530"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aaf3c3d0-7e12-4057-947f-e0a9283b9fed","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.8355176} 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":"834b00c561c640ddebb919ca7109f530"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"708c6b9f-f505-4d5f-9a4a-a30b0705154b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.8470483} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dca1991c-99f4-453b-8221-a0e1e6d4e4da","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.8471515} 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":"834b00c561c640ddebb919ca7109f530"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.847016710Z"}]},"request_id":"605cabea-2c85-4f0f-b54f-42328f5bd377","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.8530693} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"834b00c561c640ddebb919ca7109f530"},"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":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"834b00c561c640ddebb919ca7109f530"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"834b00c561c640ddebb919ca7109f530","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"327a7fcafcbe0c6eafad9fcc18b05bab","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.765044,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308101,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMX0.sTm72rR_0LctTKUs3xfykQacb_SjPcFrqe44WzDx9xY"} 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":"327a7fcafcbe0c6eafad9fcc18b05bab"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5eb25e4a-d7bc-482b-8c6a-53205e1e3c55","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.8817801} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"327a7fcafcbe0c6eafad9fcc18b05bab"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8b64cf09-c07b-47a5-99a7-415787b4c6c9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.8869221} 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":"327a7fcafcbe0c6eafad9fcc18b05bab"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"71b4be69-c56d-4a3d-b7f0-ad506ac22eec","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.899127} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"abc12dc0-0f4e-4ba2-8904-89b5dd5f4ea7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.8994484} 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":"327a7fcafcbe0c6eafad9fcc18b05bab"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.899089880Z"}]},"request_id":"83ef70cd-7ede-45c6-b610-e691b257c3cb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308101.906374} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"327a7fcafcbe0c6eafad9fcc18b05bab"},"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":"21/May/2024:16:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"327a7fcafcbe0c6eafad9fcc18b05bab"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"327a7fcafcbe0c6eafad9fcc18b05bab","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d936146d7875be9ff3a295f3bbb0a6c4","responseTime":5,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f0732f75da60926cf59875581900840f","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:47510","level":"info","msg":"Received request.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.784778,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d936146d7875be9ff3a295f3bbb0a6c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.560408,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0732f75da60926cf59875581900840f"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.899089880Z"}]},"request_id":"8aba4f9a-4414-46a5-9cd6-5ccd178a9e7d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.4016144} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d936146d7875be9ff3a295f3bbb0a6c4"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.847016710Z"}]},"request_id":"bd6786be-d436-4e79-8e47-9b7842854292","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.403504} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0732f75da60926cf59875581900840f"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"799d3e64-daa6-4531-b680-c1d90cd0ba4c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.4078448} 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":"d936146d7875be9ff3a295f3bbb0a6c4"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"45b9eeaa-8c24-4450-8814-ed1a053d68ad","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.40966} 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":"f0732f75da60926cf59875581900840f"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.847016710Z"}]},"request_id":"a10d2902-ea28-44d0-99b9-f852d72bc526","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.4143004} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0732f75da60926cf59875581900840f"},"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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50 200 25ms","method":"PATCH","requestID":"f0732f75da60926cf59875581900840f","responseTime":25,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50"} gateway-1 | {"time_local":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f0732f75da60926cf59875581900840f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a6859e99067abe30631db434afb071c4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.784173,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a6859e99067abe30631db434afb071c4"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.899089880Z"}]},"request_id":"4295c496-81e1-4460-9399-5048a4c5df55","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.4292438} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d936146d7875be9ff3a295f3bbb0a6c4"},"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":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60 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":"d936146d7875be9ff3a295f3bbb0a6c4"} device-1 | {"level":"info","message":"PATCH /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60 200 43ms","method":"PATCH","requestID":"d936146d7875be9ff3a295f3bbb0a6c4","responseTime":43,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3c79e5d1700ce9dde8a20f1f4de163bb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/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":"a6859e99067abe30631db434afb071c4"} device-1 | {"level":"info","message":"POST /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/websocket 200 17ms","method":"POST","requestID":"a6859e99067abe30631db434afb071c4","responseTime":17,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/websocket"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.307385,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"3c79e5d1700ce9dde8a20f1f4de163bb"},"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":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.014","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3c79e5d1700ce9dde8a20f1f4de163bb"} device-1 | {"level":"info","message":"POST /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/websocket 200 10ms","method":"POST","requestID":"3c79e5d1700ce9dde8a20f1f4de163bb","responseTime":10,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1aab4aae0a94eeeeef3588db5410f578","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.745739,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"1aab4aae0a94eeeeef3588db5410f578"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.847016710Z"}]},"request_id":"819a255f-20b8-4997-9c79-2bc47eaf33e8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.4754708} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1aab4aae0a94eeeeef3588db5410f578"},"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":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1aab4aae0a94eeeeef3588db5410f578"} device-1 | {"level":"info","message":"GET /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50? 200 10ms","method":"GET","requestID":"1aab4aae0a94eeeeef3588db5410f578","responseTime":10,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ef2a2ce5a233abf6fdd04742aaca3151","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.780077,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"ef2a2ce5a233abf6fdd04742aaca3151"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.899089880Z"}]},"request_id":"2c23defe-993d-48bd-b45e-d76411069b7f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.490226} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef2a2ce5a233abf6fdd04742aaca3151"},"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60? 200 11ms","method":"GET","requestID":"ef2a2ce5a233abf6fdd04742aaca3151","responseTime":11,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60?"} gateway-1 | {"time_local":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ef2a2ce5a233abf6fdd04742aaca3151"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"561799f1296eeeb1bae949116a582c6d","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:47510","level":"info","msg":"Received request.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.043554,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"561799f1296eeeb1bae949116a582c6d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"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:47510","level":"info","msg":"Received request.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.962689,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47449800-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.603871,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"4744bf10-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.847016710Z"}]},"request_id":"e98ef6b8-3642-4cdb-b1ff-e6f85c03b0de","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.536524} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47449800-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.899089880Z"}]},"request_id":"280d2a27-15dc-4ed9-a629-f3ada3708fdc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.5381687} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4744bf10-178d-11ef-9e06-b78ba83e54a6"},"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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50? 200 13ms","method":"GET","requestID":"47449800-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60? 200 13ms","method":"GET","requestID":"4744bf10-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"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/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.114135,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"474c3920-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.103721,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"474c6030-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"05b5b359-c27d-4b4b-bccf-3068a120a7ec","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.5870755} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.603476,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","rebac_allow":false,"scope_allow":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":"474cae50-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.847016710Z"}]},"request_id":"7be5dde1-04e0-40b7-92b5-a80bf8a62632","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.5896266} 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":"474c3920-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.899089880Z"}]},"request_id":"5b9230b5-7d64-4fdf-9b5d-2f4f7d8dc528","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.5926106} device-1 | {"level":"info","message":"POST /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling 200 13ms","method":"POST","requestID":"474cae50-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/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":"474c6030-178d-11ef-9e06-b78ba83e54a6"},"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":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb76bd950-7889-45bb-b884-f3ac70436ab2#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb76bd950-7889-45bb-b884-f3ac70436ab2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"8433f5bd-ee7a-468c-aebc-f4089430afff","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.5997167} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db586dee-a5ea-4ff9-9eb2-90474a92d8b2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.5999458} device-1 | {"level":"info","message":"GET /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50? 200 23ms","method":"GET","requestID":"474c3920-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60? 200 24ms","method":"GET","requestID":"474c6030-178d-11ef-9e06-b78ba83e54a6","responseTime":24,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60?"} 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":"561799f1296eeeb1bae949116a582c6d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2ba831d-f5c7-43fb-a5c6-2f96fffed090","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.602882} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.822895,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","rebac_allow":false,"scope_allow":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":"474f1f50-178d-11ef-9e06-b78ba83e54a6"},"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:47510","level":"info","msg":"Received request.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling 200 12ms","method":"POST","requestID":"474f1f50-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"704b7708-eb85-4504-a58c-3abe6d5875f1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.6095002} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.647675,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","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/b76bd950-7889-45bb-b884-f3ac70436ab2","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"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":"475057d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} gateway-1 | {"time_local":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.117","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"561799f1296eeeb1bae949116a582c6d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 113ms","method":"POST","requestID":"561799f1296eeeb1bae949116a582c6d","responseTime":113,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling 200 9ms","method":"POST","requestID":"475057d0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"41d9b91324596709f268fd9e7dd190c0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Received request.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:33686","level":"info","msg":"Sent response.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.789648,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"41d9b91324596709f268fd9e7dd190c0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bcbafcff-d26a-4777-8bbc-f644e2acaaf7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.6219625} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.207937,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","rebac_allow":false,"scope_allow":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":"47520580-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.847016710Z"}]},"request_id":"f5727089-70c3-4420-80b7-01161111b066","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.6260896} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41d9b91324596709f268fd9e7dd190c0"},"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling 200 13ms","method":"POST","requestID":"47520580-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"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":"c01e9a3b-1769-4500-ae07-a90f4ec36de0"},{"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":"073d4d99-36e5-43a3-bb0b-9f64df2f5250"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"aaa50baf-04e2-4a88-88fa-f6f022082125"}]},"level":"info","message":"Built pairwise service configurations"} gateway-1 | {"time_local":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50? 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":"41d9b91324596709f268fd9e7dd190c0"} device-1 | {"level":"info","message":"GET /devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50? 200 12ms","method":"GET","requestID":"41d9b91324596709f268fd9e7dd190c0","responseTime":12,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50?"} 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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50"},{"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a245146f6314c9ca69a0e0a00f05b528","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.022253,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"47544f70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.720721,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308102,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwMn0.SshQE8RBep_DvF_fv-LUVr2q9NcX6ifi4kKNi14woyw"} 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":"a245146f6314c9ca69a0e0a00f05b528"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:01.899089880Z"}]},"request_id":"747d0556-40c9-4464-9c12-963d45161289","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.6465435} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a245146f6314c9ca69a0e0a00f05b528"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"86e40a04-59dc-4f72-8fa2-9b4500b087c5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.64819} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cea45ea8-a6c3-405e-a7d5-0070e4c804b1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.6486888} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"47544f70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} gateway-1 | {"time_local":"21/May/2024:16:15:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60? 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":"a245146f6314c9ca69a0e0a00f05b528"} device-1 | {"level":"info","message":"GET /devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60? 200 17ms","method":"GET","requestID":"a245146f6314c9ca69a0e0a00f05b528","responseTime":17,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60?"} 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/1baca125-aa83-4ccb-ab0c-e9dfba575e34'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34'"} 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":"47544f70-178d-11ef-9e06-b78ba83e54a6","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/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"59845b99-d629-49bd-a4f9-76791b83bb79","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.7012763} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.565812,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","rebac_allow":false,"scope_allow":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":"475e3a80-178d-11ef-9e06-b78ba83e54a6"},"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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling 200 9ms","method":"POST","requestID":"475e3a80-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eecff4d0-73d1-4892-8c2f-6131cd588e84","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308102.711437} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.31087,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","rebac_allow":false,"scope_allow":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":"475fe830-178d-11ef-9e06-b78ba83e54a6"},"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling 200 8ms","method":"POST","requestID":"475fe830-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling"} device-1 | {"data":{"peerconnection":"1baca125-aa83-4ccb-ab0c-e9dfba575e34","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1baca125-aa83-4ccb-ab0c-e9dfba575e34","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/1baca125-aa83-4ccb-ab0c-e9dfba575e34' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1baca125-aa83-4ccb-ab0c-e9dfba575e34","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":"2c0b8c8d47baeee5d20a6b79f3b66da1","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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50"},{"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"2c0b8c8d47baeee5d20a6b79f3b66da1","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"2c0b8c8d47baeee5d20a6b79f3b66da1"} device-1 | {"data":{"peerconnection":"1baca125-aa83-4ccb-ab0c-e9dfba575e34","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1baca125-aa83-4ccb-ab0c-e9dfba575e34","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/1baca125-aa83-4ccb-ab0c-e9dfba575e34' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1baca125-aa83-4ccb-ab0c-e9dfba575e34","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":"a9dc84f18c5ccb346120ebbdf4a369e7","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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50"},{"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1baca125-aa83-4ccb-ab0c-e9dfba575e34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3529fec4-1e0b-45ac-a384-70b1e3714849","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308104.7954478} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.162937,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34","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":"489dbf60-178d-11ef-9e06-b78ba83e54a6"},"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/1baca125-aa83-4ccb-ab0c-e9dfba575e34 200 10ms","method":"GET","requestID":"489dbf60-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 34ms","method":"POST","requestID":"a9dc84f18c5ccb346120ebbdf4a369e7","responseTime":34,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch","requestID":"a9dc84f18c5ccb346120ebbdf4a369e7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6cfa64c0-6e0a-4e31-8165-568f38010df8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308104.8241334} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.367766,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","rebac_allow":false,"scope_allow":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":"48a20520-178d-11ef-9e06-b78ba83e54a6"},"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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling 200 12ms","method":"POST","requestID":"48a20520-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b14f81a9-6bdd-470a-af3e-d3fa2708d965","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308104.8374672} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.429778,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","rebac_allow":false,"scope_allow":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":"48a42800-178d-11ef-9e06-b78ba83e54a6"},"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling 200 11ms","method":"POST","requestID":"48a42800-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNH0.9gB_-z-xBb6XrGrwagt7REplVwrUOhhvQ8m_5n3NDcs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1abb43c28f4a3539a2b8516aa9692cc1","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.868852,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308104,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNH0.9gB_-z-xBb6XrGrwagt7REplVwrUOhhvQ8m_5n3NDcs"} 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":"1abb43c28f4a3539a2b8516aa9692cc1"},"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/b76bd950-7889-45bb-b884-f3ac70436ab2"} gateway-1 | {"time_local":"21/May/2024:16:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b76bd950-7889-45bb-b884-f3ac70436ab2 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":"1abb43c28f4a3539a2b8516aa9692cc1"} experiment-1 | {"level":"info","message":"GET /experiments/b76bd950-7889-45bb-b884-f3ac70436ab2 200 13ms","method":"GET","requestID":"1abb43c28f4a3539a2b8516aa9692cc1","responseTime":13,"status":200,"url":"/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNH0.9gB_-z-xBb6XrGrwagt7REplVwrUOhhvQ8m_5n3NDcs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3db07b2373c5aa715468ce4f1577919b","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.220943,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308104,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNH0.9gB_-z-xBb6XrGrwagt7REplVwrUOhhvQ8m_5n3NDcs"} 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":"3db07b2373c5aa715468ce4f1577919b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.480091,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308104,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNH0.9gB_-z-xBb6XrGrwagt7REplVwrUOhhvQ8m_5n3NDcs"} 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":"48b0d230-178d-11ef-9e06-b78ba83e54a6"},"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/1baca125-aa83-4ccb-ab0c-e9dfba575e34' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1baca125-aa83-4ccb-ab0c-e9dfba575e34","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":"137f97105ca13db2e71af82fb52bdc35","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1baca125-aa83-4ccb-ab0c-e9dfba575e34': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1baca125-aa83-4ccb-ab0c-e9dfba575e34","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"9464e358-74c5-4381-96c7-0430563f44e0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308104.9363647} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50"},{"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"27cc7218a3fc6c4492a2acc2ce54b4cc","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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"12ffc3aa-c034-4926-b4ce-b0cefa160698","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308104.9371395} 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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50"},{"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34"}}},"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":"48b0d230-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"data":{"peerconnection":"1baca125-aa83-4ccb-ab0c-e9dfba575e34","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/1baca125-aa83-4ccb-ab0c-e9dfba575e34 204 49ms","method":"DELETE","requestID":"48b0d230-178d-11ef-9e06-b78ba83e54a6","responseTime":49,"status":204,"url":"/peerconnections/1baca125-aa83-4ccb-ab0c-e9dfba575e34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0ac49c0b-4cfd-4344-ae27-79feffdb4e50","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c0318d6d-d2aa-4f5f-ba2e-d2ec69f1df34","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308104.9925284} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.733411,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50","object_type":"device","rebac_allow":false,"scope_allow":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":"48bba7a0-178d-11ef-9e06-b78ba83e54a6"},"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/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling 200 13ms","method":"POST","requestID":"48bba7a0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb76bd950-7889-45bb-b884-f3ac70436ab2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb76bd950-7889-45bb-b884-f3ac70436ab2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"5921e690-47ee-41be-b64f-66c0695d656a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.0000343} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a400f4bf-33f7-446d-8a8a-71edd067966f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.000251} 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":"3db07b2373c5aa715468ce4f1577919b"},"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:47510","level":"info","msg":"Received request.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:05Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fefa5fc66-0453-48d3-a7b5-b1df5bdc8e60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"24f5eddd-66e9-4653-b5b6-1dbee323864e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.006473} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.912833,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60","object_type":"device","rebac_allow":false,"scope_allow":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":"48bdf190-178d-11ef-9e06-b78ba83e54a6"},"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/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling 200 10ms","method":"POST","requestID":"48bdf190-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"} gateway-1 | {"time_local":"21/May/2024:16:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b76bd950-7889-45bb-b884-f3ac70436ab2 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":"3db07b2373c5aa715468ce4f1577919b"} experiment-1 | {"level":"info","message":"DELETE /experiments/b76bd950-7889-45bb-b884-f3ac70436ab2 204 160ms","method":"DELETE","requestID":"3db07b2373c5aa715468ce4f1577919b","responseTime":160,"status":204,"url":"/experiments/b76bd950-7889-45bb-b884-f3ac70436ab2"} gateway-1 | {"time_local":"21/May/2024:16:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2747","request_time":"2.619","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5dd98d18854b7d2cb7917829c1752fca"} gateway-1 | {"time_local":"21/May/2024:16:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2745","request_time":"2.612","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"af068a12ac4e70f37853664ae81dfc68"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 126ms","method":"POST","requestID":"137f97105ca13db2e71af82fb52bdc35","responseTime":126,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch","requestID":"137f97105ca13db2e71af82fb52bdc35"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 123ms","method":"POST","requestID":"27cc7218a3fc6c4492a2acc2ce54b4cc","responseTime":123,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch","requestID":"27cc7218a3fc6c4492a2acc2ce54b4cc"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/efa5fc66-0453-48d3-a7b5-b1df5bdc8e60' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNX0.da1Z1zryJqE-Rtf8XjbcDO0xqQ9LvGRqovspG4tYrHg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"53294caae11d81b4230e0e1aeda6efbe","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:05Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.753455,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308105,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNX0.da1Z1zryJqE-Rtf8XjbcDO0xqQ9LvGRqovspG4tYrHg"} 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":"53294caae11d81b4230e0e1aeda6efbe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0ac49c0b-4cfd-4344-ae27-79feffdb4e50' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7441b1f3-a478-432f-8187-f0a89bba842f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.085678} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53294caae11d81b4230e0e1aeda6efbe"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3dc35149-f08d-4467-a6c4-7f7023def7a0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.0914538} 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":"53294caae11d81b4230e0e1aeda6efbe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"7790056b-92af-4d42-b56f-5a1d16daa6e2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.1020653} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39cef5e4-5de9-4c30-ac66-8c7003ec2540","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.1022031} 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":"53294caae11d81b4230e0e1aeda6efbe"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.102036001Z"}]},"request_id":"7b7ae070-ccf2-4a6b-8c4f-69673518c198","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.107078} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53294caae11d81b4230e0e1aeda6efbe"},"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":"21/May/2024:16:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"53294caae11d81b4230e0e1aeda6efbe"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"53294caae11d81b4230e0e1aeda6efbe","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNX0.da1Z1zryJqE-Rtf8XjbcDO0xqQ9LvGRqovspG4tYrHg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3d358979fdafffd93a686b81ad3c7ea7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:05Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.749556,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308105,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwNX0.da1Z1zryJqE-Rtf8XjbcDO0xqQ9LvGRqovspG4tYrHg"} 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":"3d358979fdafffd93a686b81ad3c7ea7"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"447a17fd-a5e2-4df7-b716-211388c75bf7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.131968} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d358979fdafffd93a686b81ad3c7ea7"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9062e03-46bb-415a-b2bf-5b0fd2dd3369","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.1371124} 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":"3d358979fdafffd93a686b81ad3c7ea7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"05dcee4c-c19c-426c-a3b2-a6eefa6436aa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.1493928} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7fe29713-2d47-456b-8af0-5d5d0b00b01f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.1495311} 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":"3d358979fdafffd93a686b81ad3c7ea7"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.149361459Z"}]},"request_id":"4737dc15-21b8-484e-903f-fe74e12e40ec","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308105.155029} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d358979fdafffd93a686b81ad3c7ea7"},"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":"21/May/2024:16:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d358979fdafffd93a686b81ad3c7ea7"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"3d358979fdafffd93a686b81ad3c7ea7","responseTime":42,"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":"43ba433af1a605be1aeed213d993cc3a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/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":"43ba433af1a605be1aeed213d993cc3a"} device-1 | {"level":"info","message":"OPTIONS /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/websocket 200 1ms","method":"OPTIONS","requestID":"43ba433af1a605be1aeed213d993cc3a","responseTime":1,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b87c67baabe9f0bc9e35eca050d816dc","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ca5d6f04b749b47b0f996694dd09602c","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/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":"ca5d6f04b749b47b0f996694dd09602c"} device-1 | {"level":"info","message":"OPTIONS /devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/websocket 200 1ms","method":"OPTIONS","requestID":"ca5d6f04b749b47b0f996694dd09602c","responseTime":1,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/websocket"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291645,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b87c67baabe9f0bc9e35eca050d816dc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d95ff52bc8c2b87d604e5b6a02f6e9b3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.298943,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d95ff52bc8c2b87d604e5b6a02f6e9b3"},"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a/websocket 200 38ms","method":"POST","requestID":"b87c67baabe9f0bc9e35eca050d816dc","responseTime":38,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/websocket"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/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":"b87c67baabe9f0bc9e35eca050d816dc"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d95ff52bc8c2b87d604e5b6a02f6e9b3"} device-1 | {"level":"info","message":"POST /devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/websocket 200 35ms","method":"POST","requestID":"d95ff52bc8c2b87d604e5b6a02f6e9b3","responseTime":35,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5fa71a9ce801c9fa9338d39e69ab671a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.220548,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5fa71a9ce801c9fa9338d39e69ab671a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.102036001Z"}]},"request_id":"79fe7881-1248-43df-903e-08c3bd5ff87f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.2168217} 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":"5fa71a9ce801c9fa9338d39e69ab671a"},"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a? 200 18ms","method":"GET","requestID":"5fa71a9ce801c9fa9338d39e69ab671a","responseTime":18,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a?"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a? 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":"5fa71a9ce801c9fa9338d39e69ab671a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"15f367bb8f082c48fbaac1b308ee0456","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.474186,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"15f367bb8f082c48fbaac1b308ee0456"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.149361459Z"}]},"request_id":"0d346b7e-9166-42d7-b751-67d16ee282bb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.2434313} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"15f367bb8f082c48fbaac1b308ee0456"},"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f? 200 18ms","method":"GET","requestID":"15f367bb8f082c48fbaac1b308ee0456","responseTime":18,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f?"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f? 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":"15f367bb8f082c48fbaac1b308ee0456"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"358915a8b25ddc441d584495822e9933","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:47510","level":"info","msg":"Received request.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.335738,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"358915a8b25ddc441d584495822e9933"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"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:47510","level":"info","msg":"Received request.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.698587,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a1f0830-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.538824,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"4a1f5650-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.102036001Z"}]},"request_id":"bc6388f9-fcfb-404d-9c3c-f134d20e2ac8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.3265164} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a1f0830-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.149361459Z"}]},"request_id":"c0c9ecd7-af38-44c1-9931-9ed544e94f78","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.3308482} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a? 200 17ms","method":"GET","requestID":"4a1f0830-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a1f5650-178d-11ef-9e06-b78ba83e54a6"},"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f? 200 18ms","method":"GET","requestID":"4a1f5650-178d-11ef-9e06-b78ba83e54a6","responseTime":18,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"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/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.884429,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"4a28cc30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.196549,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"4a28f340-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"619bd34f-06c1-4ac0-9a33-0b05edb0b2f2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.3921177} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.113764,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","rebac_allow":false,"scope_allow":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":"4a296870-178d-11ef-9e06-b78ba83e54a6"},"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling 200 16ms","method":"POST","requestID":"4a296870-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.102036001Z"}]},"request_id":"0a3ccbcc-45c6-4cda-8469-3fc1fbe477ac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.3984728} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a28cc30-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.149361459Z"}]},"request_id":"9aa3ab19-4da8-4490-aced-1d83f2f04a94","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.400067} 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":"4a28f340-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fca8d94c5-e036-4f42-a93f-857a94013daa#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fca8d94c5-e036-4f42-a93f-857a94013daa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"42739db5-81ea-44b1-b73c-e0a449e4b6aa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.4052484} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"888ac3df-1105-41ef-9f75-c2f8d01bc291","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.405689} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"358915a8b25ddc441d584495822e9933"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3a5b5567-c9b4-4b19-9f76-caa8c728dcb5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.4105277} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.429226,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} device-1 | {"level":"info","message":"GET /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a? 200 33ms","method":"GET","requestID":"4a28cc30-178d-11ef-9e06-b78ba83e54a6","responseTime":33,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","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/bfec78c2-36be-43fc-bd5c-6de3b63e272f? 200 33ms","method":"GET","requestID":"4a28f340-178d-11ef-9e06-b78ba83e54a6","responseTime":33,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f?"} 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":"4a2c75b0-178d-11ef-9e06-b78ba83e54a6"},"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/ca8d94c5-e036-4f42-a93f-857a94013daa","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"358915a8b25ddc441d584495822e9933"} experiment-1 | {"level":"info","message":"POST /experiments? 201 164ms","method":"POST","requestID":"358915a8b25ddc441d584495822e9933","responseTime":164,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling 200 19ms","method":"POST","requestID":"4a2c75b0-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"71b5d1ef-4861-40f2-a8da-09d759b9426e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.4262657} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.081922,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b694165577851c1a46a499687eef61ba","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","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":"4a2ee6b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.372569,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling 200 13ms","method":"POST","requestID":"4a2ee6b0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"b694165577851c1a46a499687eef61ba"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.102036001Z"}]},"request_id":"e081d1b9-ddad-4d1d-99c3-ef5bb946dfa4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.4372034} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b694165577851c1a46a499687eef61ba"},"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:47510","level":"info","msg":"Received request.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"74a107fc-20d7-4054-9887-33122449bad8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.4394684} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.731072,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a? 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":"b694165577851c1a46a499687eef61ba"} device-1 | {"level":"info","message":"GET /devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a? 200 13ms","method":"GET","requestID":"b694165577851c1a46a499687eef61ba","responseTime":13,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a?"} 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":"4a3157b0-178d-11ef-9e06-b78ba83e54a6"},"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling 200 9ms","method":"POST","requestID":"4a3157b0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"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":"dc6f178e-e5c2-4b1e-8054-6ca1d7ab1796"},{"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":"3f59f550-a22a-46e4-86bd-2d0a24c34ecf"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"4afe899e-fb6a-4f31-b56e-6036f1bf218e"}]},"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f"},{"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"06457e615b6b2923e6c55419132cab98","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.537165,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"4a330560-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687826,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"06457e615b6b2923e6c55419132cab98"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:05.149361459Z"}]},"request_id":"9f9e550d-a261-469f-905a-fcae87f57b6b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.4564755} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"06457e615b6b2923e6c55419132cab98"},"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":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f? 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":"06457e615b6b2923e6c55419132cab98"} device-1 | {"level":"info","message":"GET /devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f? 200 12ms","method":"GET","requestID":"06457e615b6b2923e6c55419132cab98","responseTime":12,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"cb13c2dd-9690-4b92-8ef4-715d2266ae52","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.461701} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"daf44e62-6a73-4c1c-bd86-4b532a2885f4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.4619646} 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":"4a330560-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2'"} 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":"4a330560-178d-11ef-9e06-b78ba83e54a6","responseTime":45,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"19c7fe18-7180-4029-aeae-1a0adf09b928","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.5280354} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.915315,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","rebac_allow":false,"scope_allow":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":"4a3e9e20-178d-11ef-9e06-b78ba83e54a6"},"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling 200 10ms","method":"POST","requestID":"4a3e9e20-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f760a174-4b18-4125-ba70-0b81146c7e51","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.5398388} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.910662,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","rebac_allow":false,"scope_allow":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":"4a4099f0-178d-11ef-9e06-b78ba83e54a6"},"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling 200 10ms","method":"POST","requestID":"4a4099f0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6367caa8-93b9-4350-86d9-e89427e788f2","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"da20cabdc3c0cefeb8094d20275380af","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f"},{"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"da20cabdc3c0cefeb8094d20275380af","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"da20cabdc3c0cefeb8094d20275380af"} device-1 | {"data":{"peerconnection":"6367caa8-93b9-4350-86d9-e89427e788f2","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"6367caa8-93b9-4350-86d9-e89427e788f2","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/6367caa8-93b9-4350-86d9-e89427e788f2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6367caa8-93b9-4350-86d9-e89427e788f2","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":"23810d8d2931149f5062c5da57b26a1d","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/bfec78c2-36be-43fc-bd5c-6de3b63e272f"},{"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6367caa8-93b9-4350-86d9-e89427e788f2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d58e9db-34c9-41bc-ac93-edd6a500f1da","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.637344} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.106742,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2","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":"4a4f6700-178d-11ef-9e06-b78ba83e54a6"},"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/6367caa8-93b9-4350-86d9-e89427e788f2 200 9ms","method":"GET","requestID":"4a4f6700-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"23810d8d2931149f5062c5da57b26a1d","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"23810d8d2931149f5062c5da57b26a1d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d6443a1-e079-4113-9623-bd92166ec470","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.6642554} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.249145,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","rebac_allow":false,"scope_allow":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":"4a53acc0-178d-11ef-9e06-b78ba83e54a6"},"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling 200 8ms","method":"POST","requestID":"4a53acc0-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0278d09b-deda-405d-a648-7bd84100ab3e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.6761014} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.156583,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","rebac_allow":false,"scope_allow":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":"4a553360-178d-11ef-9e06-b78ba83e54a6"},"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling 200 10ms","method":"POST","requestID":"4a553360-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"016b7f7d501faca5bbdd0281c5c11fd0","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.256224,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"016b7f7d501faca5bbdd0281c5c11fd0"},"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/ca8d94c5-e036-4f42-a93f-857a94013daa"} experiment-1 | {"level":"info","message":"GET /experiments/ca8d94c5-e036-4f42-a93f-857a94013daa 200 10ms","method":"GET","requestID":"016b7f7d501faca5bbdd0281c5c11fd0","responseTime":10,"status":200,"url":"/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ca8d94c5-e036-4f42-a93f-857a94013daa HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"016b7f7d501faca5bbdd0281c5c11fd0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"283b446bf39c01b47cc807942629830c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.685748,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"283b446bf39c01b47cc807942629830c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.201647,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"4a5d49b0-178d-11ef-9e06-b78ba83e54a6"},"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/6367caa8-93b9-4350-86d9-e89427e788f2' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6367caa8-93b9-4350-86d9-e89427e788f2","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6367caa8-93b9-4350-86d9-e89427e788f2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6367caa8-93b9-4350-86d9-e89427e788f2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"845a17a5-786c-46dd-87c6-58208885703e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.7395978} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fef688c5-a5a2-4648-9d80-6f72af0c8a22","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.739818} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6244c7d30e350cd36dc27f89c2f7dee9","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4a5d49b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f"},{"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f"},{"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f5704c4e83d2d39631d6195a627fdd0e","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"peerconnection":"6367caa8-93b9-4350-86d9-e89427e788f2","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/6367caa8-93b9-4350-86d9-e89427e788f2 204 52ms","method":"DELETE","requestID":"4a5d49b0-178d-11ef-9e06-b78ba83e54a6","responseTime":52,"status":204,"url":"/peerconnections/6367caa8-93b9-4350-86d9-e89427e788f2"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbfec78c2-36be-43fc-bd5c-6de3b63e272f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"455ebd75-2312-456f-b78e-4c04a32d3d65","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.7966473} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.677792,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f","object_type":"device","rebac_allow":false,"scope_allow":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":"4a67a9f0-178d-11ef-9e06-b78ba83e54a6"},"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling 200 10ms","method":"POST","requestID":"4a67a9f0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/bfec78c2-36be-43fc-bd5c-6de3b63e272f/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fca8d94c5-e036-4f42-a93f-857a94013daa': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fca8d94c5-e036-4f42-a93f-857a94013daa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"b61a6ddb-a691-4d2a-8838-7ed2ed4a05a5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.8019397} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9737958-ea05-42b1-902c-08684f938766","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.8021164} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"283b446bf39c01b47cc807942629830c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff678c3dc-48c3-41a8-a4d7-26da755fe24a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"82a27b97-1938-44d9-9f30-b1e3a579d7e6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.8080904} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.411678,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a","object_type":"device","rebac_allow":false,"scope_allow":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":"4a697eb0-178d-11ef-9e06-b78ba83e54a6"},"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/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling 200 10ms","method":"POST","requestID":"4a697eb0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ca8d94c5-e036-4f42-a93f-857a94013daa HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.144","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"283b446bf39c01b47cc807942629830c"} experiment-1 | {"level":"info","message":"DELETE /experiments/ca8d94c5-e036-4f42-a93f-857a94013daa 204 142ms","method":"DELETE","requestID":"283b446bf39c01b47cc807942629830c","responseTime":142,"status":204,"url":"/experiments/ca8d94c5-e036-4f42-a93f-857a94013daa"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 116ms","method":"POST","requestID":"6244c7d30e350cd36dc27f89c2f7dee9","responseTime":116,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.119","http_referrer":"","http_user_agent":"node-fetch","requestID":"6244c7d30e350cd36dc27f89c2f7dee9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 116ms","method":"POST","requestID":"f5704c4e83d2d39631d6195a627fdd0e","responseTime":116,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.120","http_referrer":"","http_user_agent":"node-fetch","requestID":"f5704c4e83d2d39631d6195a627fdd0e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6b20d4b077ead3130c343fb9bc3f5df5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2846","request_time":"0.688","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5fbd2577a2de9f14c8d148c35bf7b637"} gateway-1 | {"time_local":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2850","request_time":"0.699","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e71f461552838c4e4bf082c78e0b9da4"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.858392,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"6b20d4b077ead3130c343fb9bc3f5df5"},"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/bfec78c2-36be-43fc-bd5c-6de3b63e272f' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f678c3dc-48c3-41a8-a4d7-26da755fe24a' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"65e4bbaf-11b6-4e4e-b236-4c7d0e78fcdb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.8806636} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6b20d4b077ead3130c343fb9bc3f5df5"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4ef7075-c9a4-4c0d-9375-472a37e45da9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.8844094} 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":"6b20d4b077ead3130c343fb9bc3f5df5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"57c02213-db8a-45c0-b178-299a3cb89260","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.894172} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9c6eba8c-f940-4444-86e6-31d28c41c2c1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.8942842} 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":"6b20d4b077ead3130c343fb9bc3f5df5"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.894135948Z"}]},"request_id":"e99eb938-1f56-4aa7-8c99-a7acc9ede738","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.897862} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6b20d4b077ead3130c343fb9bc3f5df5"},"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":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6b20d4b077ead3130c343fb9bc3f5df5"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"6b20d4b077ead3130c343fb9bc3f5df5","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7ac9ef6c8b332b57a614974074221d69","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.019979,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308107,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwN30.cTWSh5aW4GHzQb8cGfbWTKIBjU0LtFPgF87cViJ7ly4"} 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":"7ac9ef6c8b332b57a614974074221d69"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3d2e3c08-0e10-40a2-8c0f-dab77e6d937d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.9214804} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7ac9ef6c8b332b57a614974074221d69"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a2827caf-976f-4d38-90c0-cec2278d3c55","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.9263847} 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":"7ac9ef6c8b332b57a614974074221d69"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d2b9d195-240a-4f6e-9442-38d8f5828658","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.9360924} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"241d6dfc-79f4-48e5-b4cb-4e379ad5ae6b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.9362118} 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":"7ac9ef6c8b332b57a614974074221d69"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.936073138Z"}]},"request_id":"ce516cd4-566f-48ac-8359-721a94605371","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308107.940004} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7ac9ef6c8b332b57a614974074221d69"},"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":"21/May/2024:16:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7ac9ef6c8b332b57a614974074221d69"} device-1 | {"level":"info","message":"POST /devices? 201 36ms","method":"POST","requestID":"7ac9ef6c8b332b57a614974074221d69","responseTime":36,"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":"7855519711dc35134440dc97b5ee865b","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/eed202aa-594d-4de1-a3c8-c59809bce237/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":"7855519711dc35134440dc97b5ee865b"} device-1 | {"level":"info","message":"OPTIONS /devices/eed202aa-594d-4de1-a3c8-c59809bce237/websocket 200 1ms","method":"OPTIONS","requestID":"7855519711dc35134440dc97b5ee865b","responseTime":1,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8884750d8253cbb953b52efbf068b7e4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.023025,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8884750d8253cbb953b52efbf068b7e4"},"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":"7c602c9040a6c40001c05c9344af0436","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/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":"7c602c9040a6c40001c05c9344af0436"} device-1 | {"level":"info","message":"OPTIONS /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/websocket 200 1ms","method":"OPTIONS","requestID":"7c602c9040a6c40001c05c9344af0436","responseTime":1,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3b046f67bcffc56b688ee6217a5930ff","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.083302,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3b046f67bcffc56b688ee6217a5930ff"},"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":"21/May/2024:16:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/eed202aa-594d-4de1-a3c8-c59809bce237/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":"8884750d8253cbb953b52efbf068b7e4"} device-1 | {"level":"info","message":"POST /devices/eed202aa-594d-4de1-a3c8-c59809bce237/websocket 200 40ms","method":"POST","requestID":"8884750d8253cbb953b52efbf068b7e4","responseTime":40,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/websocket 200 33ms","method":"POST","requestID":"3b046f67bcffc56b688ee6217a5930ff","responseTime":33,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/websocket"} gateway-1 | {"time_local":"21/May/2024:16:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/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":"3b046f67bcffc56b688ee6217a5930ff"} device-1 | {"level":"info","message":"device 'http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7b11ab151d466086a2c79e44e1ce0db7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642904,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7b11ab151d466086a2c79e44e1ce0db7"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.894135948Z"}]},"request_id":"436cf3bd-d3c6-491c-8b49-ef6331ffaa01","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308109.929865} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7b11ab151d466086a2c79e44e1ce0db7"},"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":"21/May/2024:16:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6? 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":"7b11ab151d466086a2c79e44e1ce0db7"} device-1 | {"level":"info","message":"GET /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6? 200 19ms","method":"GET","requestID":"7b11ab151d466086a2c79e44e1ce0db7","responseTime":19,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d9b514eb0edead07a6f9e6c892d7fe30","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.353061,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d9b514eb0edead07a6f9e6c892d7fe30"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.936073138Z"}]},"request_id":"3d306b4f-a630-4de5-a4a4-1b11c55cde4d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308109.9554937} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d9b514eb0edead07a6f9e6c892d7fe30"},"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":"21/May/2024:16:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eed202aa-594d-4de1-a3c8-c59809bce237? 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":"d9b514eb0edead07a6f9e6c892d7fe30"} device-1 | {"level":"info","message":"GET /devices/eed202aa-594d-4de1-a3c8-c59809bce237? 200 18ms","method":"GET","requestID":"d9b514eb0edead07a6f9e6c892d7fe30","responseTime":18,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d36758f8766acb957c7ca64d0b7dd98b","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:47510","level":"info","msg":"Received request.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.595645,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} 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":"d36758f8766acb957c7ca64d0b7dd98b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"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:47510","level":"info","msg":"Received request.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.141097,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4bbe1230-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.934986,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} 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":"4bbe6050-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.894135948Z"}]},"request_id":"db76e261-4d55-4c6f-8d49-9dee29e16cfa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.0500572} 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":"4bbe1230-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.936073138Z"}]},"request_id":"b42809c0-1083-4aa8-8578-952bc8b031e7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.0522685} 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":"4bbe6050-178d-11ef-9e06-b78ba83e54a6"},"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6? 200 25ms","method":"GET","requestID":"4bbe1230-178d-11ef-9e06-b78ba83e54a6","responseTime":25,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eed202aa-594d-4de1-a3c8-c59809bce237? 200 24ms","method":"GET","requestID":"4bbe6050-178d-11ef-9e06-b78ba83e54a6","responseTime":24,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"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:47510","level":"info","msg":"Received request.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.829463,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"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":"4bcb7fb0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.769302,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} 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":"4bcbcdd0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.894135948Z"}]},"request_id":"49f8edff-e1af-45b5-8da2-7d7a4d11b351","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.143702} 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":"4bcb7fb0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.936073138Z"}]},"request_id":"6b9380e4-8b1e-449f-bc4d-41339cb1ccd4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.1460214} authorization-1 | {"client_addr":"127.0.0.1:59996","level":"info","msg":"Received request.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} 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":"4bcbcdd0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2fae7000-6ebf-4e7e-bcc0-e0c4ff1a47b9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.1488652} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6? 200 30ms","method":"GET","requestID":"4bcb7fb0-178d-11ef-9e06-b78ba83e54a6","responseTime":30,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eed202aa-594d-4de1-a3c8-c59809bce237? 200 31ms","method":"GET","requestID":"4bcbcdd0-178d-11ef-9e06-b78ba83e54a6","responseTime":31,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237?"} authorization-1 | {"client_addr":"127.0.0.1:59996","level":"info","msg":"Sent response.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.957492,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4bcc4300-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":25}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff5e678c7-f07a-421c-aa45-3c4894c08b12#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff5e678c7-f07a-421c-aa45-3c4894c08b12","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"955480dd-5acf-4704-a7c5-802802f4b01f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.157272} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0d8cd7fb-44a7-4a5a-a123-b28094dbccc8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.1576238} 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":"d36758f8766acb957c7ca64d0b7dd98b"},"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:47510","level":"info","msg":"Received request.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eaed936e-5c6d-46b1-b9dd-9ca87f0a7b9a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.1648684} device-1 | {"level":"info","message":"POST /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling 200 37ms","method":"POST","requestID":"4bcc4300-178d-11ef-9e06-b78ba83e54a6","responseTime":37,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.122517,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","rebac_allow":false,"scope_allow":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":"4bd0fdf0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.207","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d36758f8766acb957c7ca64d0b7dd98b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 201ms","method":"POST","requestID":"d36758f8766acb957c7ca64d0b7dd98b","responseTime":201,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} device-1 | {"level":"info","message":"POST /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling 200 13ms","method":"POST","requestID":"4bd0fdf0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3b0b359f-f3a6-44c6-9217-ec166cc6bc20","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.1739666} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.406302,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I","level":"info","message":"auth send jwt"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","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 4ms","method":"GET","requestID":"c217e197efe3ea1ef674360cee5bf4e2","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4bd28490-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b5cb355c-30e7-4c04-af77-1a791bbd6157","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.1793246} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} device-1 | {"level":"info","message":"POST /devices/eed202aa-594d-4de1-a3c8-c59809bce237/signaling 200 11ms","method":"POST","requestID":"4bd28490-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.700814,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","rebac_allow":false,"scope_allow":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":"4bd36ef0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.881484,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308110,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c217e197efe3ea1ef674360cee5bf4e2"},"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/eed202aa-594d-4de1-a3c8-c59809bce237/signaling 200 9ms","method":"POST","requestID":"4bd36ef0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.894135948Z"}]},"request_id":"924772bf-5722-49e5-8a4e-c86152b85f30","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.1850903} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"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":"83f9bcd2-2ad5-447d-a252-6cdc4194f878"},{"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":"8e0dc58a-e2ac-48f1-8299-17f86781e1fb"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"dd7f621e-2aa5-485d-84b8-77a6844f3647"}]},"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/eed202aa-594d-4de1-a3c8-c59809bce237"},{"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c217e197efe3ea1ef674360cee5bf4e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6? 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":"c217e197efe3ea1ef674360cee5bf4e2"} device-1 | {"level":"info","message":"GET /devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6? 200 12ms","method":"GET","requestID":"c217e197efe3ea1ef674360cee5bf4e2","responseTime":12,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.809098,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308109,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEwOX0.JWZVMtZe14SZGUrtQ41_9gWG6eQ7FKEyTvPgmc4eKQc"} 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":"4bd543b0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ef8808bf6942d1e392950fcfef60f176","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.705322,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308110,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef8808bf6942d1e392950fcfef60f176"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"cf9be787-667d-4f9e-91b3-8ba8ddc4836f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.199373} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41338cce-9d8e-4f1f-bb52-d6b2467aafa0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.1997256} 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":"4bd543b0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:07.936073138Z"}]},"request_id":"4dc91a49-178f-48ca-88e4-d1ce60600b96","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.203715} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef8808bf6942d1e392950fcfef60f176"},"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/ebfd9ccf-075b-435a-a004-d61e5db372d3'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 35ms","method":"POST","requestID":"4bd543b0-178d-11ef-9e06-b78ba83e54a6","responseTime":35,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eed202aa-594d-4de1-a3c8-c59809bce237? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ef8808bf6942d1e392950fcfef60f176"} device-1 | {"level":"info","message":"GET /devices/eed202aa-594d-4de1-a3c8-c59809bce237? 200 28ms","method":"GET","requestID":"ef8808bf6942d1e392950fcfef60f176","responseTime":28,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee857507-6ea5-4121-bdbf-20531b9b9f60","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.25404} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.698285,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","rebac_allow":false,"scope_allow":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":"4bdeb990-178d-11ef-9e06-b78ba83e54a6"},"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling 200 9ms","method":"POST","requestID":"4bdeb990-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aa30a055-258b-4653-bc22-2aa7e4a63def","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.2654893} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.692435,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","rebac_allow":false,"scope_allow":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":"4be06740-178d-11ef-9e06-b78ba83e54a6"},"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/eed202aa-594d-4de1-a3c8-c59809bce237/signaling 200 10ms","method":"POST","requestID":"4be06740-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ebfd9ccf-075b-435a-a004-d61e5db372d3","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"09e4374ead3dcb130d46009c388c4192","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237"},{"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"09e4374ead3dcb130d46009c388c4192","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"09e4374ead3dcb130d46009c388c4192"} device-1 | {"data":{"peerconnection":"ebfd9ccf-075b-435a-a004-d61e5db372d3","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ebfd9ccf-075b-435a-a004-d61e5db372d3","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/ebfd9ccf-075b-435a-a004-d61e5db372d3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ebfd9ccf-075b-435a-a004-d61e5db372d3","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":"3ae3af17cd7fee8d35c8a771f155a7ab","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237"},{"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Febfd9ccf-075b-435a-a004-d61e5db372d3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c4ad3d8-cccd-4d25-9200-0fce831368f7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.353165} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.158642,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3","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":"4bedfbd0-178d-11ef-9e06-b78ba83e54a6"},"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/ebfd9ccf-075b-435a-a004-d61e5db372d3 200 8ms","method":"GET","requestID":"4bedfbd0-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"3ae3af17cd7fee8d35c8a771f155a7ab","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"3ae3af17cd7fee8d35c8a771f155a7ab"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cdd1f8e2-ebe7-4dad-9282-f30e4b2afe03","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.3752694} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.33772,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","rebac_allow":false,"scope_allow":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":"4bf15730-178d-11ef-9e06-b78ba83e54a6"},"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/eed202aa-594d-4de1-a3c8-c59809bce237/signaling 200 8ms","method":"POST","requestID":"4bf15730-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"65510404-0b8b-4954-8344-cf57f00e207c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.3850312} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.395686,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","rebac_allow":false,"scope_allow":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":"4bf2ddd0-178d-11ef-9e06-b78ba83e54a6"},"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling 200 8ms","method":"POST","requestID":"4bf2ddd0-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e34c5abd11971f8c100e280cf2b0dd34","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.787665,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308110,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I"} 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":"e34c5abd11971f8c100e280cf2b0dd34"},"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/f5e678c7-f07a-421c-aa45-3c4894c08b12"} gateway-1 | {"time_local":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e34c5abd11971f8c100e280cf2b0dd34"} experiment-1 | {"level":"info","message":"GET /experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12 200 11ms","method":"GET","requestID":"e34c5abd11971f8c100e280cf2b0dd34","responseTime":11,"status":200,"url":"/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"563099d5fabf14b621f8a4c40abdf5c5","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.045873,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308110,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I"} 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":"563099d5fabf14b621f8a4c40abdf5c5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.086756,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308110,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I"} 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":"4bfb9060-178d-11ef-9e06-b78ba83e54a6"},"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/ebfd9ccf-075b-435a-a004-d61e5db372d3' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ebfd9ccf-075b-435a-a004-d61e5db372d3","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Febfd9ccf-075b-435a-a004-d61e5db372d3': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Febfd9ccf-075b-435a-a004-d61e5db372d3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"518fc01d-58e5-4234-838d-67a317cd2f19","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.4534576} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2428eff0-3ea4-4f84-ab87-213431c66514","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.4536982} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"04fba7b5ebd46ceeefc8ce160ed9997b","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4bfb9060-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237"},{"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5aabc95e35f07f8ed2cc4f25da827b00","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/eed202aa-594d-4de1-a3c8-c59809bce237"},{"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ebfd9ccf-075b-435a-a004-d61e5db372d3","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/ebfd9ccf-075b-435a-a004-d61e5db372d3 204 48ms","method":"DELETE","requestID":"4bfb9060-178d-11ef-9e06-b78ba83e54a6","responseTime":48,"status":204,"url":"/peerconnections/ebfd9ccf-075b-435a-a004-d61e5db372d3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed202aa-594d-4de1-a3c8-c59809bce237","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a7b2b22e-bba7-410d-b6bd-80d26ef3917f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.5136194} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.224755,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed202aa-594d-4de1-a3c8-c59809bce237","object_type":"device","rebac_allow":false,"scope_allow":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":"4c05f0a0-178d-11ef-9e06-b78ba83e54a6"},"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/eed202aa-594d-4de1-a3c8-c59809bce237/signaling 200 13ms","method":"POST","requestID":"4c05f0a0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/eed202aa-594d-4de1-a3c8-c59809bce237/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff5e678c7-f07a-421c-aa45-3c4894c08b12': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff5e678c7-f07a-421c-aa45-3c4894c08b12","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"546ed098-5039-4e27-8981-905af2c9b1d3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.5203528} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bfa64b93-6ca4-4a12-a422-7143f5a8dead","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.5210557} 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":"563099d5fabf14b621f8a4c40abdf5c5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eac8b60f-6d0d-4e09-b08a-ee3b197ba4e3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.5282621} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.014237,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6","object_type":"device","rebac_allow":false,"scope_allow":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":"4c0861a0-178d-11ef-9e06-b78ba83e54a6"},"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/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling 200 13ms","method":"POST","requestID":"4c0861a0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"} gateway-1 | {"time_local":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.159","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"563099d5fabf14b621f8a4c40abdf5c5"} experiment-1 | {"level":"info","message":"DELETE /experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12 204 156ms","method":"DELETE","requestID":"563099d5fabf14b621f8a4c40abdf5c5","responseTime":156,"status":204,"url":"/experiments/f5e678c7-f07a-421c-aa45-3c4894c08b12"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 131ms","method":"POST","requestID":"04fba7b5ebd46ceeefc8ce160ed9997b","responseTime":131,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.133","http_referrer":"","http_user_agent":"node-fetch","requestID":"04fba7b5ebd46ceeefc8ce160ed9997b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 131ms","method":"POST","requestID":"5aabc95e35f07f8ed2cc4f25da827b00","responseTime":131,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.134","http_referrer":"","http_user_agent":"node-fetch","requestID":"5aabc95e35f07f8ed2cc4f25da827b00"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a0ca86a54dd14222bebffe8b0dd3c7f4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2848","request_time":"0.710","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"20031df5a54e24cfe01dbc11ed4785fd"} gateway-1 | {"time_local":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2847","request_time":"0.697","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9636c51496830cc5ce487c3e1691120a"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.352364,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3bdcc7cb-d2fd-4aa6-939b-1b41f286a2b6' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308110,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I"} 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":"a0ca86a54dd14222bebffe8b0dd3c7f4"},"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/eed202aa-594d-4de1-a3c8-c59809bce237' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d04a26cf-07c8-463b-affe-b0a99c0cebbe","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.6156833} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0ca86a54dd14222bebffe8b0dd3c7f4"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"369aeeb1-dbc2-46d1-9bbd-53ef3429d5d7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.6202254} 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":"a0ca86a54dd14222bebffe8b0dd3c7f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"3e0f40d6-700a-4a2b-9640-dc7aa04e8835","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.6307874} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"35e51e2a-dcfc-4eeb-a82b-8bb47251d733","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.6309898} 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":"a0ca86a54dd14222bebffe8b0dd3c7f4"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.630756431Z"}]},"request_id":"60ac3149-ff80-46c4-a0d2-24b3b51c1089","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.6348128} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0ca86a54dd14222bebffe8b0dd3c7f4"},"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":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a0ca86a54dd14222bebffe8b0dd3c7f4"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"a0ca86a54dd14222bebffe8b0dd3c7f4","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ca2f0f9d761e5dfc92292554c61fe15e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.654795,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308110,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMH0.wPX1ZBDABBxrUBe0DrF3Hgb6gbFZXPDbNxqk48I4p4I"} 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":"ca2f0f9d761e5dfc92292554c61fe15e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"83c3d874-98bd-4943-9885-444471dd2ece","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.6563582} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca2f0f9d761e5dfc92292554c61fe15e"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5957f905-cd29-4279-98ad-831a00785ee6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.660242} 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":"ca2f0f9d761e5dfc92292554c61fe15e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"b12f43e7-ee13-482c-8857-9e01406785a7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.669493} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"69125320-572e-473d-a386-62272cc004fd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.66961} 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":"ca2f0f9d761e5dfc92292554c61fe15e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.669470702Z"}]},"request_id":"ec532173-9aa1-4dbb-98d1-08b2cb5baf96","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308110.673291} 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":"ca2f0f9d761e5dfc92292554c61fe15e"},"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":"21/May/2024:16:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca2f0f9d761e5dfc92292554c61fe15e"} device-1 | {"level":"info","message":"POST /devices? 201 34ms","method":"POST","requestID":"ca2f0f9d761e5dfc92292554c61fe15e","responseTime":34,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMX0.LyjIR-4oBHXgl32M-vrLiSdq3Z8tHt1z5UhRDRDKoAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5e61aa87a7b2c4e8236a36d4d19adfb0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:11Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.044482,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308111,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMX0.LyjIR-4oBHXgl32M-vrLiSdq3Z8tHt1z5UhRDRDKoAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e61aa87a7b2c4e8236a36d4d19adfb0"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.669470702Z"}]},"request_id":"d5548318-a2d2-4cc9-b4de-79b9f41c1fb3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308111.1656256} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e61aa87a7b2c4e8236a36d4d19adfb0"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"29d149ce-08b5-4ff9-b8f7-634908763721","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308111.1726081} 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":"5e61aa87a7b2c4e8236a36d4d19adfb0"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.669470702Z"}]},"request_id":"bc925dc8-914f-4500-8cf1-1e1de5750698","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308111.199841} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e61aa87a7b2c4e8236a36d4d19adfb0"},"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/313abc09-a05e-49dd-976c-e7b30441752f 200 50ms","method":"PATCH","requestID":"5e61aa87a7b2c4e8236a36d4d19adfb0","responseTime":50,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f"} gateway-1 | {"time_local":"21/May/2024:16:15:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/313abc09-a05e-49dd-976c-e7b30441752f 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":"5e61aa87a7b2c4e8236a36d4d19adfb0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMX0.LyjIR-4oBHXgl32M-vrLiSdq3Z8tHt1z5UhRDRDKoAM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4226716bd4972dff6f37450046ca63e4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:11Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.244594,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308111,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMX0.LyjIR-4oBHXgl32M-vrLiSdq3Z8tHt1z5UhRDRDKoAM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4226716bd4972dff6f37450046ca63e4"},"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":"21/May/2024:16:15:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/313abc09-a05e-49dd-976c-e7b30441752f/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":"4226716bd4972dff6f37450046ca63e4"} device-1 | {"level":"info","message":"POST /devices/313abc09-a05e-49dd-976c-e7b30441752f/websocket 200 22ms","method":"POST","requestID":"4226716bd4972dff6f37450046ca63e4","responseTime":22,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f' 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":"75f03f22dc7c6d851c846a84e2c9adea","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/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":"75f03f22dc7c6d851c846a84e2c9adea"} device-1 | {"level":"info","message":"OPTIONS /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/websocket 200 1ms","method":"OPTIONS","requestID":"75f03f22dc7c6d851c846a84e2c9adea","responseTime":1,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2a02950d835f7fdd0a606c2b37a0be3f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.208775,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a02950d835f7fdd0a606c2b37a0be3f"},"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":"21/May/2024:16:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2a02950d835f7fdd0a606c2b37a0be3f"} device-1 | {"level":"info","message":"POST /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/websocket 200 30ms","method":"POST","requestID":"2a02950d835f7fdd0a606c2b37a0be3f","responseTime":30,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"0b9df75346b3fe9571e32ca568a4bd67","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.423923,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0b9df75346b3fe9571e32ca568a4bd67"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.630756431Z"}]},"request_id":"6417329f-9f6b-45a8-9142-1fc22af13a84","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.7315583} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0b9df75346b3fe9571e32ca568a4bd67"},"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/7528e770-55e0-4efc-a5d9-76ae5df69d74? 200 18ms","method":"GET","requestID":"0b9df75346b3fe9571e32ca568a4bd67","responseTime":18,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74?"} gateway-1 | {"time_local":"21/May/2024:16:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74? 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":"0b9df75346b3fe9571e32ca568a4bd67"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"9f18bd9fdfac07183c951fc42f9a2c39","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.204113,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f18bd9fdfac07183c951fc42f9a2c39"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.669470702Z"}]},"request_id":"a3097215-ae68-40f2-adb2-979f38bde745","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.757855} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f18bd9fdfac07183c951fc42f9a2c39"},"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":"21/May/2024:16:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/313abc09-a05e-49dd-976c-e7b30441752f? 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":"9f18bd9fdfac07183c951fc42f9a2c39"} device-1 | {"level":"info","message":"GET /devices/313abc09-a05e-49dd-976c-e7b30441752f? 200 21ms","method":"GET","requestID":"9f18bd9fdfac07183c951fc42f9a2c39","responseTime":21,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"821593f4e2d6968245770e4730829153","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:47510","level":"info","msg":"Received request.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.303915,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} 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":"821593f4e2d6968245770e4730829153"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"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:47510","level":"info","msg":"Received request.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.271514,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4d68dc00-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291231,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} 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":"4d690310-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.630756431Z"}]},"request_id":"f5413c1a-3700-4371-8bdc-2e3c19b4acdf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.844066} 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":"4d68dc00-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.669470702Z"}]},"request_id":"eddccd3d-a4b9-42b9-9ee2-55fa56e8068a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.8457603} 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":"4d690310-178d-11ef-9e06-b78ba83e54a6"},"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/7528e770-55e0-4efc-a5d9-76ae5df69d74? 200 20ms","method":"GET","requestID":"4d68dc00-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/313abc09-a05e-49dd-976c-e7b30441752f? 200 20ms","method":"GET","requestID":"4d690310-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"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:47510","level":"info","msg":"Received request.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.908949,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} 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":"4d74c2e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.640634,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} 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":"4d751100-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee4956ad-dbc0-44bc-beb1-8c6cac08d367","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9246285} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.536752,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","rebac_allow":false,"scope_allow":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":"4d755f20-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.630756431Z"}]},"request_id":"bba3601d-744a-46dd-b017-039dd8fc23ef","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9285798} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4d74c2e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"POST /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling 200 20ms","method":"POST","requestID":"4d755f20-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.669470702Z"}]},"request_id":"72f3c60c-23c6-48f1-8f7d-10febed46cb9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9336479} 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":"4d751100-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F941b89cd-eac6-45d9-ae02-52697f2eb476#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F941b89cd-eac6-45d9-ae02-52697f2eb476","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"f3d306cd-84c5-4075-9035-08e026635557","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9407904} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"11045c6e-689c-46b7-9eb9-1c53747423ad","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9411466} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74? 200 36ms","method":"GET","requestID":"4d74c2e0-178d-11ef-9e06-b78ba83e54a6","responseTime":36,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74?"} 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":"821593f4e2d6968245770e4730829153"},"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:47510","level":"info","msg":"Received request.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/313abc09-a05e-49dd-976c-e7b30441752f? 200 36ms","method":"GET","requestID":"4d751100-178d-11ef-9e06-b78ba83e54a6","responseTime":36,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"931b963a-8a37-4677-a256-ce376565ac24","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9507406} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.634203,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","rebac_allow":false,"scope_allow":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":"4d7956c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/313abc09-a05e-49dd-976c-e7b30441752f/signaling 200 20ms","method":"POST","requestID":"4d7956c0-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} gateway-1 | {"time_local":"21/May/2024:16:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"821593f4e2d6968245770e4730829153"} experiment-1 | {"level":"info","message":"POST /experiments? 201 186ms","method":"POST","requestID":"821593f4e2d6968245770e4730829153","responseTime":186,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"21bff7ad-6c4d-453f-a38f-418d2d9a02fb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9629343} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.935833,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","rebac_allow":false,"scope_allow":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":"4d7bc7c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"edb4c40e53200be577e35328b266b6c8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling 200 14ms","method":"POST","requestID":"4d7bc7c0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.348577,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} 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":"edb4c40e53200be577e35328b266b6c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e220fae8-5bdf-4e28-978a-85818731f632","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9797025} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.436412,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","rebac_allow":false,"scope_allow":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":"4d7e5fd0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.630756431Z"}]},"request_id":"e59e25f1-2442-41a3-bf2e-30b68100e30d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308112.9829617} 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":"edb4c40e53200be577e35328b266b6c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/313abc09-a05e-49dd-976c-e7b30441752f/signaling 200 21ms","method":"POST","requestID":"4d7e5fd0-178d-11ef-9e06-b78ba83e54a6","responseTime":21,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"edb4c40e53200be577e35328b266b6c8"} device-1 | {"level":"info","message":"GET /devices/7528e770-55e0-4efc-a5d9-76ae5df69d74? 200 25ms","method":"GET","requestID":"edb4c40e53200be577e35328b266b6c8","responseTime":25,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"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":"a299fae3-707a-4035-9c8a-98ce258c4d43"},{"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":"644be69c-c9c6-4293-b6f6-e309a309c9af"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6a906bcd-f118-4ece-8a79-c573b9b44aed"}]},"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/313abc09-a05e-49dd-976c-e7b30441752f"},{"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/7528e770-55e0-4efc-a5d9-76ae5df69d74"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExM30.j9PeKpM4AKc6KLNB2zvMytDIFhjL-D_W4QVkbB-tj8k","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6834e1b040eec919e83442cf2efe9d8e","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:13Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.154942,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:13Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308112,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExMn0.iMH7hxJc1CLPl4Po1vnE77aNSDDW47GVhNRuBXo_IRk"} 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":"4d825770-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:13Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.051046,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308113,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExM30.j9PeKpM4AKc6KLNB2zvMytDIFhjL-D_W4QVkbB-tj8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6834e1b040eec919e83442cf2efe9d8e"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:10.669470702Z"}]},"request_id":"bf6f48d3-bf12-4024-bb41-21f3e3b13723","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308113.0142775} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6834e1b040eec919e83442cf2efe9d8e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"c331ca80-b536-4f88-9212-ebb442ced0a8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308113.0154579} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd4b99f8-2341-492e-ae58-5f92b980bd42","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308113.0157907} 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":"4d825770-178d-11ef-9e06-b78ba83e54a6"},"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":"21/May/2024:16:15:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/313abc09-a05e-49dd-976c-e7b30441752f? 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":"6834e1b040eec919e83442cf2efe9d8e"} device-1 | {"level":"info","message":"GET /devices/313abc09-a05e-49dd-976c-e7b30441752f? 200 16ms","method":"GET","requestID":"6834e1b040eec919e83442cf2efe9d8e","responseTime":16,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f?"} 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/ae1291dc-e637-4f17-bd5e-0ec35557fe63'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"4d825770-178d-11ef-9e06-b78ba83e54a6","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:13Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2e04766-ac79-4880-a702-81f6f7dc1e7d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308113.0819166} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.852017,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","rebac_allow":false,"scope_allow":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":"4d8df030-178d-11ef-9e06-b78ba83e54a6"},"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/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling 200 12ms","method":"POST","requestID":"4d8df030-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:13Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"94d16b02-f189-476e-ba62-b0697a3cee04","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308113.0946574} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.708449,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","rebac_allow":false,"scope_allow":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":"4d903a20-178d-11ef-9e06-b78ba83e54a6"},"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/313abc09-a05e-49dd-976c-e7b30441752f/signaling 200 13ms","method":"POST","requestID":"4d903a20-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74'"} device-1 | {"data":{"peerconnection":"ae1291dc-e637-4f17-bd5e-0ec35557fe63","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/ae1291dc-e637-4f17-bd5e-0ec35557fe63' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ae1291dc-e637-4f17-bd5e-0ec35557fe63","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":"e292362df6512a175fb5f1765c7f64d1","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/313abc09-a05e-49dd-976c-e7b30441752f"},{"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/7528e770-55e0-4efc-a5d9-76ae5df69d74"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"e292362df6512a175fb5f1765c7f64d1","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"e292362df6512a175fb5f1765c7f64d1"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74'"} device-1 | {"data":{"peerconnection":"ae1291dc-e637-4f17-bd5e-0ec35557fe63","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ae1291dc-e637-4f17-bd5e-0ec35557fe63","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/ae1291dc-e637-4f17-bd5e-0ec35557fe63' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ae1291dc-e637-4f17-bd5e-0ec35557fe63","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":"62d076762bbb3faf7879ef5f949e8d83","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/313abc09-a05e-49dd-976c-e7b30441752f"},{"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/7528e770-55e0-4efc-a5d9-76ae5df69d74"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fae1291dc-e637-4f17-bd5e-0ec35557fe63","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea77810a-9226-4f06-b2cf-52e9ca6418aa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.213639} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.807227,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63","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":"4ed34170-178d-11ef-9e06-b78ba83e54a6"},"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/ae1291dc-e637-4f17-bd5e-0ec35557fe63 200 12ms","method":"GET","requestID":"4ed34170-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"62d076762bbb3faf7879ef5f949e8d83","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"62d076762bbb3faf7879ef5f949e8d83"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"48e5a495-b45e-4ae7-b6ec-d9eaa072148f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.248531} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.118807,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","rebac_allow":false,"scope_allow":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":"4ed8bfb0-178d-11ef-9e06-b78ba83e54a6"},"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/313abc09-a05e-49dd-976c-e7b30441752f/signaling 200 10ms","method":"POST","requestID":"4ed8bfb0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b4f733f6-8f78-43e5-aa2e-2e082359d80c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.2621775} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.492168,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","rebac_allow":false,"scope_allow":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":"4edabb80-178d-11ef-9e06-b78ba83e54a6"},"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/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling 200 10ms","method":"POST","requestID":"4edabb80-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a4a788f1aae109fc1c4bce8078872fea","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.619686,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308115,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg"} 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":"a4a788f1aae109fc1c4bce8078872fea"},"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/941b89cd-eac6-45d9-ae02-52697f2eb476"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/941b89cd-eac6-45d9-ae02-52697f2eb476 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a4a788f1aae109fc1c4bce8078872fea"} experiment-1 | {"level":"info","message":"GET /experiments/941b89cd-eac6-45d9-ae02-52697f2eb476 200 17ms","method":"GET","requestID":"a4a788f1aae109fc1c4bce8078872fea","responseTime":17,"status":200,"url":"/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e9a182d1de66f1c26bb4904b26120d81","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.257736,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308115,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg"} 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":"e9a182d1de66f1c26bb4904b26120d81"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.71013,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308115,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4ee5b800-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ae1291dc-e637-4f17-bd5e-0ec35557fe63","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fae1291dc-e637-4f17-bd5e-0ec35557fe63': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fae1291dc-e637-4f17-bd5e-0ec35557fe63","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"85e62a29-c666-4298-8d74-3536a2eb43b9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.3444326} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"01ab84598d96e27c3cd2057c4b56cef3","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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"168f00c7-4755-46c8-8ce8-1ef7ebe25c9d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.3448784} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4ee5b800-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f"},{"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/7528e770-55e0-4efc-a5d9-76ae5df69d74"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f6720c11e35e656045f975c8d810982a","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/313abc09-a05e-49dd-976c-e7b30441752f"},{"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/7528e770-55e0-4efc-a5d9-76ae5df69d74"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ae1291dc-e637-4f17-bd5e-0ec35557fe63","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/ae1291dc-e637-4f17-bd5e-0ec35557fe63 204 47ms","method":"DELETE","requestID":"4ee5b800-178d-11ef-9e06-b78ba83e54a6","responseTime":47,"status":204,"url":"/peerconnections/ae1291dc-e637-4f17-bd5e-0ec35557fe63"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F313abc09-a05e-49dd-976c-e7b30441752f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"69b9e46b-9886-40ed-a4af-e2e3a772d92f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.40799} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.958524,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/313abc09-a05e-49dd-976c-e7b30441752f","object_type":"device","rebac_allow":false,"scope_allow":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":"4ef0db90-178d-11ef-9e06-b78ba83e54a6"},"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/313abc09-a05e-49dd-976c-e7b30441752f/signaling 200 14ms","method":"POST","requestID":"4ef0db90-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/313abc09-a05e-49dd-976c-e7b30441752f/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F941b89cd-eac6-45d9-ae02-52697f2eb476': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F941b89cd-eac6-45d9-ae02-52697f2eb476","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"d488f305-b7e8-4890-91c5-61acca9ceb22","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.416137} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2738d210-73a9-4ce9-9f78-3b0f2f78d6cd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.4162688} 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":"e9a182d1de66f1c26bb4904b26120d81"},"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:47510","level":"info","msg":"Received request.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7528e770-55e0-4efc-a5d9-76ae5df69d74","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"daa3cc67-d7ce-47b7-a2ef-887211422c20","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.4243734} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.686368,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74","object_type":"device","rebac_allow":false,"scope_allow":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":"4ef373a0-178d-11ef-9e06-b78ba83e54a6"},"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/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling 200 13ms","method":"POST","requestID":"4ef373a0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/941b89cd-eac6-45d9-ae02-52697f2eb476 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.170","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9a182d1de66f1c26bb4904b26120d81"} experiment-1 | {"level":"info","message":"DELETE /experiments/941b89cd-eac6-45d9-ae02-52697f2eb476 204 163ms","method":"DELETE","requestID":"e9a182d1de66f1c26bb4904b26120d81","responseTime":163,"status":204,"url":"/experiments/941b89cd-eac6-45d9-ae02-52697f2eb476"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3191","request_time":"4.241","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"10fe961e0780fb370b9cd2f4747ace2f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 132ms","method":"POST","requestID":"01ab84598d96e27c3cd2057c4b56cef3","responseTime":132,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"01ab84598d96e27c3cd2057c4b56cef3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 133ms","method":"POST","requestID":"f6720c11e35e656045f975c8d810982a","responseTime":133,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3bf5825d3afbb398ac460c41a66d29b5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"f6720c11e35e656045f975c8d810982a"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.025566,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2704","request_time":"2.792","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d0de32f596bc64ff2d8f5e554eae52cd"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308115,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg"} 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":"3bf5825d3afbb398ac460c41a66d29b5"},"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/313abc09-a05e-49dd-976c-e7b30441752f' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9891e8fa-028c-4fac-935a-2b0872e1d350","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.504302} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3bf5825d3afbb398ac460c41a66d29b5"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4af449c2-c8e0-4e62-99ee-7c27fc3fa7a6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.5087721} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7528e770-55e0-4efc-a5d9-76ae5df69d74' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3bf5825d3afbb398ac460c41a66d29b5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"2c6b6959-f595-4cfa-b6c0-0d8f74b70362","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.518969} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7f3e314-e16b-49c8-99fc-dd4727200db5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.5190737} 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":"3bf5825d3afbb398ac460c41a66d29b5"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.518943939Z"}]},"request_id":"6b35b541-7392-4daa-8459-40de864a171d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.5230637} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3bf5825d3afbb398ac460c41a66d29b5"},"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":"3bf5825d3afbb398ac460c41a66d29b5","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3bf5825d3afbb398ac460c41a66d29b5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"12f27de1d86681a9ef475103b55f9b54","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.699665,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308115,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNX0.BzDrbpzK6YEAMxCSMUrl9ksJT27CE7o_F8VnnKiZRQg"} 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":"12f27de1d86681a9ef475103b55f9b54"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a09907e7-5dfd-4d67-b0e6-482584a2af82","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.5478864} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"12f27de1d86681a9ef475103b55f9b54"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8acd4d95-efca-49e6-bbd3-ceba397640d7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.5527768} 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":"12f27de1d86681a9ef475103b55f9b54"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"33a20887-478c-4049-9b01-5e3aa8a3b05f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.5619159} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0c30183-8772-466e-861a-2480a3000257","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.562015} 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":"12f27de1d86681a9ef475103b55f9b54"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.561885915Z"}]},"request_id":"d62f948e-224d-44a9-bdf5-ee2db9f2aed5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308115.5663822} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"12f27de1d86681a9ef475103b55f9b54"},"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":"21/May/2024:16:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"12f27de1d86681a9ef475103b55f9b54"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"12f27de1d86681a9ef475103b55f9b54","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNn0.52mWZtVeBErsyiwPrIR_XHRfuLkDM_hOah6bzlVXwMU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"baf90105fed490048f1f458762c07ff7","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:16Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.639164,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308116,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNn0.52mWZtVeBErsyiwPrIR_XHRfuLkDM_hOah6bzlVXwMU"} 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":"baf90105fed490048f1f458762c07ff7"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.561885915Z"}]},"request_id":"2ecc8bec-23d2-4f74-9e6b-d4aebb69aae9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308116.0549905} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"baf90105fed490048f1f458762c07ff7"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c3828510-ad17-43e9-8987-c52e5e5dfaca","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308116.0606244} 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":"baf90105fed490048f1f458762c07ff7"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.561885915Z"}]},"request_id":"b6e38c69-ea65-4fa6-8b95-1c8a3144c3fe","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308116.0900393} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"baf90105fed490048f1f458762c07ff7"},"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":"21/May/2024:16:15:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd 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":"baf90105fed490048f1f458762c07ff7"} device-1 | {"level":"info","message":"PATCH /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd 200 47ms","method":"PATCH","requestID":"baf90105fed490048f1f458762c07ff7","responseTime":47,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNn0.52mWZtVeBErsyiwPrIR_XHRfuLkDM_hOah6bzlVXwMU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"53b259f22e8577e4a59d68d0ddbc2b30","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:16Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.174982,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308116,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExNn0.52mWZtVeBErsyiwPrIR_XHRfuLkDM_hOah6bzlVXwMU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53b259f22e8577e4a59d68d0ddbc2b30"},"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":"21/May/2024:16:15:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/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":"53b259f22e8577e4a59d68d0ddbc2b30"} device-1 | {"level":"info","message":"POST /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/websocket 200 21ms","method":"POST","requestID":"53b259f22e8577e4a59d68d0ddbc2b30","responseTime":21,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd' 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":"cc2237ed60f0eff9897c48a18241aae9","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6985b373-a215-45d9-b50a-ab37b4a57e33/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":"cc2237ed60f0eff9897c48a18241aae9"} device-1 | {"level":"info","message":"OPTIONS /devices/6985b373-a215-45d9-b50a-ab37b4a57e33/websocket 200 1ms","method":"OPTIONS","requestID":"cc2237ed60f0eff9897c48a18241aae9","responseTime":1,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4232debd6e03b46b2504efc83495ec14","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.643732,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4232debd6e03b46b2504efc83495ec14"},"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":"21/May/2024:16:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6985b373-a215-45d9-b50a-ab37b4a57e33/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":"4232debd6e03b46b2504efc83495ec14"} device-1 | {"level":"info","message":"POST /devices/6985b373-a215-45d9-b50a-ab37b4a57e33/websocket 200 32ms","method":"POST","requestID":"4232debd6e03b46b2504efc83495ec14","responseTime":32,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5adea6436eaed5dc44a975d86ab6374d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.267792,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5adea6436eaed5dc44a975d86ab6374d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.518943939Z"}]},"request_id":"c218f3d2-0624-4277-975c-9aa63f41e072","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.6191676} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5adea6436eaed5dc44a975d86ab6374d"},"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/6985b373-a215-45d9-b50a-ab37b4a57e33? 200 16ms","method":"GET","requestID":"5adea6436eaed5dc44a975d86ab6374d","responseTime":16,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33?"} gateway-1 | {"time_local":"21/May/2024:16:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6985b373-a215-45d9-b50a-ab37b4a57e33? 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":"5adea6436eaed5dc44a975d86ab6374d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"80c2d60197b202458a947c4ba1575bfd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.193714,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80c2d60197b202458a947c4ba1575bfd"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.561885915Z"}]},"request_id":"d1a3ddc6-2a74-4042-aa56-9bc168391b0c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.6432948} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80c2d60197b202458a947c4ba1575bfd"},"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd? 200 16ms","method":"GET","requestID":"80c2d60197b202458a947c4ba1575bfd","responseTime":16,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd?"} gateway-1 | {"time_local":"21/May/2024:16:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd? 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":"80c2d60197b202458a947c4ba1575bfd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0da6a64db4287d508b6125292f1d1103","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:47510","level":"info","msg":"Received request.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.358732,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} 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":"0da6a64db4287d508b6125292f1d1103"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"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:47510","level":"info","msg":"Received request.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.766851,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} 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":"50506b90-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.133798,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5050b9b0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.518943939Z"}]},"request_id":"2e9e53a8-b409-4043-8e41-3d795d15b586","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.717885} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50506b90-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.561885915Z"}]},"request_id":"bfbdb098-204b-4634-91ea-1d3f1e31b10e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.7194164} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5050b9b0-178d-11ef-9e06-b78ba83e54a6"},"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/6985b373-a215-45d9-b50a-ab37b4a57e33? 200 19ms","method":"GET","requestID":"50506b90-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd? 200 19ms","method":"GET","requestID":"5050b9b0-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"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:47510","level":"info","msg":"Received request.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.303624,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} 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":"505c7980-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.318665,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} 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":"505ca090-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:40802","level":"info","msg":"Received request.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.561885915Z"}]},"request_id":"0417db66-5d0d-4fb9-9c7f-ac87a519a87d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.7991877} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4d775815-72a6-4763-90ee-c59437868d57","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8002374} 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":"505ca090-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.518943939Z"}]},"request_id":"75d54899-ca54-41f9-bb49-8ed6f9087aac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8004723} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"505c7980-178d-11ef-9e06-b78ba83e54a6"},"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:40802","level":"info","msg":"Sent response.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.884552,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"505ceeb0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff9bdc738-416c-418d-aa33-2d493b26a0e0#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff9bdc738-416c-418d-aa33-2d493b26a0e0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"508f55ce-3e8f-4af8-af48-b5ced8aa55b0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8052359} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5eb33f06-565f-4246-97af-424333063b65","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8059504} 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":"0da6a64db4287d508b6125292f1d1103"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"GET /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd? 200 24ms","method":"GET","requestID":"505ca090-178d-11ef-9e06-b78ba83e54a6","responseTime":24,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6985b373-a215-45d9-b50a-ab37b4a57e33? 200 27ms","method":"GET","requestID":"505c7980-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling 200 26ms","method":"POST","requestID":"505ceeb0-178d-11ef-9e06-b78ba83e54a6","responseTime":26,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04f1f6a8-1018-4bd8-a71e-c5101089f2dc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8266237} gateway-1 | {"time_local":"21/May/2024:16:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0da6a64db4287d508b6125292f1d1103"} experiment-1 | {"level":"info","message":"POST /experiments? 201 171ms","method":"POST","requestID":"0da6a64db4287d508b6125292f1d1103","responseTime":171,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.028383,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","rebac_allow":false,"scope_allow":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":"5061f7c0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"85cc2132-3ac2-43de-9cb7-fbacfee4c73f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.829366} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.36407,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 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":"506245e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"POST /devices/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling 200 14ms","method":"POST","requestID":"5061f7c0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d27f47124297372f57bed840f22e07b0","responseTime":5,"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling 200 20ms","method":"POST","requestID":"506245e0-178d-11ef-9e06-b78ba83e54a6","responseTime":20,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"233390c8-5dcd-4d67-9d14-7874410a683d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.845343} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.446479,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} 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":"d27f47124297372f57bed840f22e07b0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.505692,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","rebac_allow":false,"scope_allow":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":"5064b6e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.518943939Z"}]},"request_id":"121840ff-95cb-47d7-b25c-df848d5b1fc4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8527844} device-1 | {"level":"info","message":"POST /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling 200 15ms","method":"POST","requestID":"5064b6e0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/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":"d27f47124297372f57bed840f22e07b0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"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":"c0aa694b-4881-40d2-8fc5-95d49b177442"},{"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":"964444e2-4da5-4053-8f0b-ba5a7e23fb6e"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d589c465-e392-490d-aa81-ebb5def06ce8"}]},"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/6985b373-a215-45d9-b50a-ab37b4a57e33"},{"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd"}],"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":"21/May/2024:16:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6985b373-a215-45d9-b50a-ab37b4a57e33? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d27f47124297372f57bed840f22e07b0"} device-1 | {"level":"info","message":"GET /devices/6985b373-a215-45d9-b50a-ab37b4a57e33? 200 19ms","method":"GET","requestID":"d27f47124297372f57bed840f22e07b0","responseTime":19,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.134334,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} 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":"50677600-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2713678b002b325599a163d0c910b995","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.200632,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308117,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODExN30.hjc-jorm5tkr_3YmiU2VemAHbXbs_9wtdvI2ipryCfw"} 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":"2713678b002b325599a163d0c910b995"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"1df3c521-221f-4637-bb4a-dfbe86f738a7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8772323} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bb3e65f7-1c11-460f-b368-c994581efd69","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8783946} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:15.561885915Z"}]},"request_id":"97213e42-88e3-4fa1-ba70-d69cc84c1a59","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.8784757} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2713678b002b325599a163d0c910b995"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50677600-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd? 200 17ms","method":"GET","requestID":"2713678b002b325599a163d0c910b995","responseTime":17,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd?"} gateway-1 | {"time_local":"21/May/2024:16:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd? 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":"2713678b002b325599a163d0c910b995"} 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/4f472106-cfe1-4e1f-bede-e715ff96ac4b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b'"} 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":"50677600-178d-11ef-9e06-b78ba83e54a6","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/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"37af298a-b2e5-4fb5-b415-64cffa7696f7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.945671} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.658352,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","rebac_allow":false,"scope_allow":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":"50746e50-178d-11ef-9e06-b78ba83e54a6"},"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/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling 200 10ms","method":"POST","requestID":"50746e50-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cce37460-1fe5-4a46-ac27-abb5f92df4a6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308117.9589903} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.580938,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","rebac_allow":false,"scope_allow":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":"50766a20-178d-11ef-9e06-b78ba83e54a6"},"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling 200 10ms","method":"POST","requestID":"50766a20-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling"} device-1 | {"data":{"peerconnection":"4f472106-cfe1-4e1f-bede-e715ff96ac4b","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/4f472106-cfe1-4e1f-bede-e715ff96ac4b' to 'http://localhost/callbacks/experiment'"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"data":{"peerconnection":"4f472106-cfe1-4e1f-bede-e715ff96ac4b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6ec5ebfeed0b11603af4762c4ef3a11b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33'"} 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/6985b373-a215-45d9-b50a-ab37b4a57e33"},{"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"6ec5ebfeed0b11603af4762c4ef3a11b","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"6ec5ebfeed0b11603af4762c4ef3a11b"} device-1 | {"data":{"peerconnection":"4f472106-cfe1-4e1f-bede-e715ff96ac4b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4f472106-cfe1-4e1f-bede-e715ff96ac4b","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/4f472106-cfe1-4e1f-bede-e715ff96ac4b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4f472106-cfe1-4e1f-bede-e715ff96ac4b","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":"156c4f02844c46337480798c0a86feb1","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/6985b373-a215-45d9-b50a-ab37b4a57e33"},{"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4f472106-cfe1-4e1f-bede-e715ff96ac4b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7dd8d4ef-279e-4c0c-8c5d-7407318b9845","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.1213107} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.107528,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b","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":"51c00120-178d-11ef-9e06-b78ba83e54a6"},"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/4f472106-cfe1-4e1f-bede-e715ff96ac4b 200 14ms","method":"GET","requestID":"51c00120-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 48ms","method":"POST","requestID":"156c4f02844c46337480798c0a86feb1","responseTime":48,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"156c4f02844c46337480798c0a86feb1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e3b27e06-f9f9-43e1-b676-dbfc15849ece","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.1616707} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.713945,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","rebac_allow":false,"scope_allow":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":"51c61ba0-178d-11ef-9e06-b78ba83e54a6"},"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/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling 200 14ms","method":"POST","requestID":"51c61ba0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b84bd794-4a17-4eec-a2b0-6b6705dcd21c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.177995} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.946068,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","rebac_allow":false,"scope_allow":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":"51c8b3b0-178d-11ef-9e06-b78ba83e54a6"},"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling 200 14ms","method":"POST","requestID":"51c8b3b0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"570d35f3adc0b68bf56d0c0015d0febb","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.5597,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308120,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA"} 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":"570d35f3adc0b68bf56d0c0015d0febb"},"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/f9bdc738-416c-418d-aa33-2d493b26a0e0"} gateway-1 | {"time_local":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0 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":"570d35f3adc0b68bf56d0c0015d0febb"} experiment-1 | {"level":"info","message":"GET /experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0 200 17ms","method":"GET","requestID":"570d35f3adc0b68bf56d0c0015d0febb","responseTime":17,"status":200,"url":"/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"318e7b15c8690da0bb8ce320fe88ff54","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.258927,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308120,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA"} 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":"318e7b15c8690da0bb8ce320fe88ff54"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.213063,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308120,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA"} 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":"51d42560-178d-11ef-9e06-b78ba83e54a6"},"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/4f472106-cfe1-4e1f-bede-e715ff96ac4b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4f472106-cfe1-4e1f-bede-e715ff96ac4b","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4f472106-cfe1-4e1f-bede-e715ff96ac4b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4f472106-cfe1-4e1f-bede-e715ff96ac4b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"1a78c292-dab9-4f2e-9604-f4d8fdecb742","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.2702816} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d7ab77c-1984-4dfa-93eb-663ab00ab0f3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.27091} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"112cd2007cd4d18a4f20248c1196990a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","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/6985b373-a215-45d9-b50a-ab37b4a57e33"},{"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b"}}},"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":"51d42560-178d-11ef-9e06-b78ba83e54a6"},"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 2ms","method":"GET","requestID":"f552f75e64aeaa622515f1a4e5c45006","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33"},{"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4f472106-cfe1-4e1f-bede-e715ff96ac4b","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/4f472106-cfe1-4e1f-bede-e715ff96ac4b 204 53ms","method":"DELETE","requestID":"51d42560-178d-11ef-9e06-b78ba83e54a6","responseTime":53,"status":204,"url":"/peerconnections/4f472106-cfe1-4e1f-bede-e715ff96ac4b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6985b373-a215-45d9-b50a-ab37b4a57e33","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1932ead8-2e3c-4006-8ee6-e1c934debb6e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.331329} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.967705,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6985b373-a215-45d9-b50a-ab37b4a57e33","object_type":"device","rebac_allow":false,"scope_allow":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":"51e00c40-178d-11ef-9e06-b78ba83e54a6"},"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/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling 200 14ms","method":"POST","requestID":"51e00c40-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/6985b373-a215-45d9-b50a-ab37b4a57e33/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff9bdc738-416c-418d-aa33-2d493b26a0e0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff9bdc738-416c-418d-aa33-2d493b26a0e0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"a3da9563-2876-44ed-b142-0bb3467ed985","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.3399746} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"797627ec-7fad-4c56-91fa-de9fbea0db59","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.3405197} 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":"318e7b15c8690da0bb8ce320fe88ff54"},"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:47510","level":"info","msg":"Received request.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F72017dc0-5aaa-42b5-8c9f-51f11279c1fd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"33379210-669b-48a4-8957-b3fc06c5a554","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.3491924} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.693219,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd","object_type":"device","rebac_allow":false,"scope_allow":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":"51e2cb60-178d-11ef-9e06-b78ba83e54a6"},"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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling 200 14ms","method":"POST","requestID":"51e2cb60-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/72017dc0-5aaa-42b5-8c9f-51f11279c1fd/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"} gateway-1 | {"time_local":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0 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":"318e7b15c8690da0bb8ce320fe88ff54"} gateway-1 | {"time_local":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2798","request_time":"4.288","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fad07c7515ccbf470c261a987999d8d6"} experiment-1 | {"level":"info","message":"DELETE /experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0 204 187ms","method":"DELETE","requestID":"318e7b15c8690da0bb8ce320fe88ff54","responseTime":187,"status":204,"url":"/experiments/f9bdc738-416c-418d-aa33-2d493b26a0e0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"112cd2007cd4d18a4f20248c1196990a","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"112cd2007cd4d18a4f20248c1196990a"} gateway-1 | {"time_local":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"f552f75e64aeaa622515f1a4e5c45006"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"f552f75e64aeaa622515f1a4e5c45006","responseTime":142,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f85af764fdfe9df8f1ddcdf5b660c9f5","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/72017dc0-5aaa-42b5-8c9f-51f11279c1fd' closed"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2709","request_time":"2.839","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"05c31b6d373fbf58db35e52a40ba1e38"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.12436,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308120,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA"} 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":"f85af764fdfe9df8f1ddcdf5b660c9f5"},"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/6985b373-a215-45d9-b50a-ab37b4a57e33' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"52fa9ab4-bebe-4585-baef-bdb689236522","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.4443426} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f85af764fdfe9df8f1ddcdf5b660c9f5"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"09171594-b7d8-4495-8d28-68c03bc42f59","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.4491117} 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":"f85af764fdfe9df8f1ddcdf5b660c9f5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"efbe689a-7da9-4dd3-a047-5407c301fd80","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.4622416} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd5b7b47-9acc-4d82-b338-8548a2bd2c4c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.4623227} 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":"f85af764fdfe9df8f1ddcdf5b660c9f5"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.462218352Z"}]},"request_id":"158a14cd-aa20-4b67-9821-5ac5d7ceef34","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.4659848} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f85af764fdfe9df8f1ddcdf5b660c9f5"},"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":"f85af764fdfe9df8f1ddcdf5b660c9f5","responseTime":44,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f85af764fdfe9df8f1ddcdf5b660c9f5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1291982016ad56ba929b552f1b4dcfea","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.795878,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308120,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA"} 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":"1291982016ad56ba929b552f1b4dcfea"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1b724631-3299-4253-a223-dbbd38aa2c7e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.4875004} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1291982016ad56ba929b552f1b4dcfea"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb696071-64fd-46cd-9920-8b1cc18d93e9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.4925199} 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":"1291982016ad56ba929b552f1b4dcfea"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"dbf0d61c-4a77-44f2-8c52-00ee53a81a22","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.5002103} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5e153da7-d83b-4e65-a094-4d04991bdaaf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.500388} 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":"1291982016ad56ba929b552f1b4dcfea"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.500177087Z"}]},"request_id":"53d18991-a282-48ab-bdfb-b918e0d4318b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.5085053} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1291982016ad56ba929b552f1b4dcfea"},"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":"21/May/2024:16:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1291982016ad56ba929b552f1b4dcfea"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"1291982016ad56ba929b552f1b4dcfea","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"050bd3d45d506e8df38b39f2aaa78805","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.716218,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308120,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMH0.OqJT9fTu9w4BAzQf-1OCVYnNEPVUpUHU1ymhTrvb4kA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"050bd3d45d506e8df38b39f2aaa78805"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.462218352Z"}]},"request_id":"d1c3ef00-cd50-4b28-b78b-8ab359694bf3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308120.9992483} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"050bd3d45d506e8df38b39f2aaa78805"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"77231dec-f742-461b-91a2-29f144fef163","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308121.0036647} 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":"050bd3d45d506e8df38b39f2aaa78805"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.462218352Z"}]},"request_id":"7d9a3044-b683-484c-b2b7-290e7226e7e0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308121.019185} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"050bd3d45d506e8df38b39f2aaa78805"},"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":"21/May/2024:16:15:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d014cd72-369b-46ab-b469-7f49a90c2545 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":"050bd3d45d506e8df38b39f2aaa78805"} device-1 | {"level":"info","message":"PATCH /devices/d014cd72-369b-46ab-b469-7f49a90c2545 200 34ms","method":"PATCH","requestID":"050bd3d45d506e8df38b39f2aaa78805","responseTime":34,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMX0.bl-iDvQ_ZxBRq54K6MFOkXgIbDF-ssqhxK_MIhzeHm8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5fc999c717fb066712d5bd9dcb54ea94","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:21Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.2253,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308121,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMX0.bl-iDvQ_ZxBRq54K6MFOkXgIbDF-ssqhxK_MIhzeHm8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5fc999c717fb066712d5bd9dcb54ea94"},"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":"21/May/2024:16:15:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d014cd72-369b-46ab-b469-7f49a90c2545/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":"5fc999c717fb066712d5bd9dcb54ea94"} device-1 | {"level":"info","message":"POST /devices/d014cd72-369b-46ab-b469-7f49a90c2545/websocket 200 21ms","method":"POST","requestID":"5fc999c717fb066712d5bd9dcb54ea94","responseTime":21,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545' 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":"e4cc9d1c1d8c4a8418785be066457216","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/fcad0c5a-5595-4d83-938d-68735e4032b3/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":"e4cc9d1c1d8c4a8418785be066457216"} device-1 | {"level":"info","message":"OPTIONS /devices/fcad0c5a-5595-4d83-938d-68735e4032b3/websocket 200 1ms","method":"OPTIONS","requestID":"e4cc9d1c1d8c4a8418785be066457216","responseTime":1,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a6fd56dbdd02cf8495d8ef8b2a6fb14d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.696113,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a6fd56dbdd02cf8495d8ef8b2a6fb14d"},"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":"21/May/2024:16:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fcad0c5a-5595-4d83-938d-68735e4032b3/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":"a6fd56dbdd02cf8495d8ef8b2a6fb14d"} device-1 | {"level":"info","message":"POST /devices/fcad0c5a-5595-4d83-938d-68735e4032b3/websocket 200 38ms","method":"POST","requestID":"a6fd56dbdd02cf8495d8ef8b2a6fb14d","responseTime":38,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a5c2bd5c0f1ccb1029167fe5528a27d6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.328452,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a5c2bd5c0f1ccb1029167fe5528a27d6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.462218352Z"}]},"request_id":"e632ae31-945a-4804-acb3-94ac892b6b44","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.5881398} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a5c2bd5c0f1ccb1029167fe5528a27d6"},"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":"21/May/2024:16:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d014cd72-369b-46ab-b469-7f49a90c2545? 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":"a5c2bd5c0f1ccb1029167fe5528a27d6"} device-1 | {"level":"info","message":"GET /devices/d014cd72-369b-46ab-b469-7f49a90c2545? 200 18ms","method":"GET","requestID":"a5c2bd5c0f1ccb1029167fe5528a27d6","responseTime":18,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"20190518c739cb76d2368258fdfb2ffc","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.382584,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} 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":"20190518c739cb76d2368258fdfb2ffc"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.500177087Z"}]},"request_id":"ceff4d11-3d93-4f57-9c36-1b52a89bf0d7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.6159794} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"20190518c739cb76d2368258fdfb2ffc"},"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/fcad0c5a-5595-4d83-938d-68735e4032b3? 200 18ms","method":"GET","requestID":"20190518c739cb76d2368258fdfb2ffc","responseTime":18,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3?"} gateway-1 | {"time_local":"21/May/2024:16:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fcad0c5a-5595-4d83-938d-68735e4032b3? 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":"20190518c739cb76d2368258fdfb2ffc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9a71ba956b00ef7e72320b3c0100d21d","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:47510","level":"info","msg":"Received request.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.227497,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} 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":"9a71ba956b00ef7e72320b3c0100d21d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"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:47510","level":"info","msg":"Received request.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.600764,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} 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":"53493930-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661678,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} 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":"53498750-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.462218352Z"}]},"request_id":"7b28ceaf-1c5f-4dbf-a3e1-2a59c1ecb205","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.6988266} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53493930-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.500177087Z"}]},"request_id":"d46aad29-a376-42ca-a365-5e38229f179a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.6992638} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53498750-178d-11ef-9e06-b78ba83e54a6"},"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/d014cd72-369b-46ab-b469-7f49a90c2545? 200 14ms","method":"GET","requestID":"53493930-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/fcad0c5a-5595-4d83-938d-68735e4032b3? 200 13ms","method":"GET","requestID":"53498750-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"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/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.821376,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53540ea0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.859426,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53545cc0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c9c22cc7-9c07-41eb-8ec1-4f6e9eee1496","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.7731035} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.8892,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","rebac_allow":false,"scope_allow":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":"5354aae0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.500177087Z"}]},"request_id":"a87c1f37-0713-49f3-9845-bf09647b2f11","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.7763615} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53545cc0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.462218352Z"}]},"request_id":"b8b47941-48f7-40ee-b421-4513e4bfea76","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.7795775} device-1 | {"level":"info","message":"POST /devices/d014cd72-369b-46ab-b469-7f49a90c2545/signaling 200 15ms","method":"POST","requestID":"5354aae0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53540ea0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"2ea655d3-50c0-42db-ba03-5228d8ee17c3","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.7843971} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a9044bc7-126b-4d5c-9ca6-c09177acca70","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.7846658} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9a71ba956b00ef7e72320b3c0100d21d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} device-1 | {"level":"info","message":"GET /devices/fcad0c5a-5595-4d83-938d-68735e4032b3? 200 23ms","method":"GET","requestID":"53545cc0-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d014cd72-369b-46ab-b469-7f49a90c2545? 200 27ms","method":"GET","requestID":"53540ea0-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"57b9841c-1bff-4a89-9811-8d20ee4f17b1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.7895975} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.781001,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","rebac_allow":false,"scope_allow":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":"53576a00-178d-11ef-9e06-b78ba83e54a6"},"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/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling 200 10ms","method":"POST","requestID":"53576a00-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"21/May/2024:16:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.172","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9a71ba956b00ef7e72320b3c0100d21d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 165ms","method":"POST","requestID":"9a71ba956b00ef7e72320b3c0100d21d","responseTime":165,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"99b93260-d825-436d-81a4-05698b769fcd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.7993634} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.332457,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f064aa03e83ea60cba6af7a01f5c6137","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5358f0a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.955231,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d014cd72-369b-46ab-b469-7f49a90c2545/signaling 200 10ms","method":"POST","requestID":"5358f0a0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f064aa03e83ea60cba6af7a01f5c6137"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.462218352Z"}]},"request_id":"8a9adc1c-b2a9-4687-89a7-55b0d980131c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.8077033} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f064aa03e83ea60cba6af7a01f5c6137"},"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:47510","level":"info","msg":"Received request.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7a436b57-b752-4958-8e63-1f6584e4b169","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.810221} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.251246,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"21/May/2024:16:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d014cd72-369b-46ab-b469-7f49a90c2545? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f064aa03e83ea60cba6af7a01f5c6137"} device-1 | {"level":"info","message":"GET /devices/d014cd72-369b-46ab-b469-7f49a90c2545? 200 12ms","method":"GET","requestID":"f064aa03e83ea60cba6af7a01f5c6137","responseTime":12,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545?"} 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":"535ac560-178d-11ef-9e06-b78ba83e54a6"},"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/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling 200 8ms","method":"POST","requestID":"535ac560-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"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":"94daa014-3e0f-48c5-bb61-3ca6af9243c2"},{"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":"56c4b601-2e18-4793-8abd-b078f3dd09cf"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"492e1128-e796-4222-97ad-b2f6ff559f8b"}]},"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/d014cd72-369b-46ab-b469-7f49a90c2545"},{"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/fcad0c5a-5595-4d83-938d-68735e4032b3"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"98dee61e5ff3a6872dd4981236bfc519","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:47510","level":"info","msg":"Received request.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.964931,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} 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":"535c7310-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.624667,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308122,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyMn0.kSbmw-06EVeI-0QzwgkZM9avG_oDtjdv6iPPSK0hjno"} 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":"98dee61e5ff3a6872dd4981236bfc519"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:20.500177087Z"}]},"request_id":"7ca1238e-b33b-474b-80d5-d2d3a8160d75","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.825771} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"98dee61e5ff3a6872dd4981236bfc519"},"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/fcad0c5a-5595-4d83-938d-68735e4032b3? 200 11ms","method":"GET","requestID":"98dee61e5ff3a6872dd4981236bfc519","responseTime":11,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3?"} gateway-1 | {"time_local":"21/May/2024:16:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fcad0c5a-5595-4d83-938d-68735e4032b3? 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":"98dee61e5ff3a6872dd4981236bfc519"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"90e638f1-b84b-409c-9991-1171fcae9cd1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.830422} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2ac3ab37-610e-4554-8ca1-f4e79131d841","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.8309948} 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":"535c7310-178d-11ef-9e06-b78ba83e54a6"},"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/c2e930f2-3849-4a1e-a31c-daecabff050a'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 39ms","method":"POST","requestID":"535c7310-178d-11ef-9e06-b78ba83e54a6","responseTime":39,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c07319df-bef7-4f93-9f3f-feb5cba9b57d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.8863232} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.388128,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","rebac_allow":false,"scope_allow":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":"53665e20-178d-11ef-9e06-b78ba83e54a6"},"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/d014cd72-369b-46ab-b469-7f49a90c2545/signaling 200 11ms","method":"POST","requestID":"53665e20-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2da7e2b4-b3e6-4b16-ad78-2243d0497b61","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308122.8991683} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":1.961209,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","rebac_allow":false,"scope_allow":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":"536859f0-178d-11ef-9e06-b78ba83e54a6"},"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/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling 200 9ms","method":"POST","requestID":"536859f0-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling"} device-1 | {"data":{"peerconnection":"c2e930f2-3849-4a1e-a31c-daecabff050a","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/c2e930f2-3849-4a1e-a31c-daecabff050a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c2e930f2-3849-4a1e-a31c-daecabff050a","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":"289ffa32be33f2713b4ac9a9b7a16bb3","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/d014cd72-369b-46ab-b469-7f49a90c2545"},{"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/fcad0c5a-5595-4d83-938d-68735e4032b3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"289ffa32be33f2713b4ac9a9b7a16bb3","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"289ffa32be33f2713b4ac9a9b7a16bb3"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3'"} device-1 | {"data":{"peerconnection":"c2e930f2-3849-4a1e-a31c-daecabff050a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"c2e930f2-3849-4a1e-a31c-daecabff050a","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/c2e930f2-3849-4a1e-a31c-daecabff050a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c2e930f2-3849-4a1e-a31c-daecabff050a","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":"ab266297761a7accf2b1ba633b80b49a","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/d014cd72-369b-46ab-b469-7f49a90c2545"},{"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/fcad0c5a-5595-4d83-938d-68735e4032b3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc2e930f2-3849-4a1e-a31c-daecabff050a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"52219fb8-8747-4d0c-8540-763e7233c263","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.0290928} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.124744,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a","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":"54ace7e0-178d-11ef-9e06-b78ba83e54a6"},"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/c2e930f2-3849-4a1e-a31c-daecabff050a 200 13ms","method":"GET","requestID":"54ace7e0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"ab266297761a7accf2b1ba633b80b49a","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"ab266297761a7accf2b1ba633b80b49a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f4fde022-f59e-4bb4-8fb3-b4489928ee82","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.0678897} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.476133,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","rebac_allow":false,"scope_allow":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":"54b28d30-178d-11ef-9e06-b78ba83e54a6"},"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/d014cd72-369b-46ab-b469-7f49a90c2545/signaling 200 16ms","method":"POST","requestID":"54b28d30-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"421760a0-c83a-41b4-8dc3-7f08fd7e19eb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.0845191} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.627229,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","rebac_allow":false,"scope_allow":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":"54b57360-178d-11ef-9e06-b78ba83e54a6"},"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/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling 200 13ms","method":"POST","requestID":"54b57360-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"80b14d92ec4089c9ac06744e7b30903d","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.343798,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308125,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI"} 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":"80b14d92ec4089c9ac06744e7b30903d"},"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/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"} experiment-1 | {"level":"info","message":"GET /experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f 200 15ms","method":"GET","requestID":"80b14d92ec4089c9ac06744e7b30903d","responseTime":15,"status":200,"url":"/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"} gateway-1 | {"time_local":"21/May/2024:16:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f 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":"80b14d92ec4089c9ac06744e7b30903d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e5bc5898787aabb151b88f854f36abdf","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.179004,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308125,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI"} 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":"e5bc5898787aabb151b88f854f36abdf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.229996,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308125,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI"} 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":"54be4d00-178d-11ef-9e06-b78ba83e54a6"},"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/c2e930f2-3849-4a1e-a31c-daecabff050a' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c2e930f2-3849-4a1e-a31c-daecabff050a","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc2e930f2-3849-4a1e-a31c-daecabff050a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc2e930f2-3849-4a1e-a31c-daecabff050a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"dbf06dc7-e92d-467b-a200-127c17148779","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.1627686} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"95193658-02f5-40fd-8547-f057bcd7d8a0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.163171} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fac61e61e872aa078886b1795132fc62","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545"},{"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/fcad0c5a-5595-4d83-938d-68735e4032b3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a"}}},"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":"54be4d00-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5606a578198e073c060ab27bdcf9f450","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545"},{"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/fcad0c5a-5595-4d83-938d-68735e4032b3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"c2e930f2-3849-4a1e-a31c-daecabff050a","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/c2e930f2-3849-4a1e-a31c-daecabff050a 204 58ms","method":"DELETE","requestID":"54be4d00-178d-11ef-9e06-b78ba83e54a6","responseTime":58,"status":204,"url":"/peerconnections/c2e930f2-3849-4a1e-a31c-daecabff050a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd014cd72-369b-46ab-b469-7f49a90c2545","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a1d53bd3-33e3-4746-adc6-2aede56530d0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.2282627} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.778622,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545","object_type":"device","rebac_allow":false,"scope_allow":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":"54cb4550-178d-11ef-9e06-b78ba83e54a6"},"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/d014cd72-369b-46ab-b469-7f49a90c2545/signaling 200 15ms","method":"POST","requestID":"54cb4550-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/d014cd72-369b-46ab-b469-7f49a90c2545/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"6432b8f4-363d-4ba2-b56e-3e761fb90120","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.2387865} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a7ee047-0c72-4695-bf6e-c9caa25e408f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.239531} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5bc5898787aabb151b88f854f36abdf"},"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:47510","level":"info","msg":"Received request.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcad0c5a-5595-4d83-938d-68735e4032b3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f6dc5ab9-1ee0-4c25-b4e9-9ac91d7519c4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.2515354} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.345199,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fcad0c5a-5595-4d83-938d-68735e4032b3","object_type":"device","rebac_allow":false,"scope_allow":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":"54ce5290-178d-11ef-9e06-b78ba83e54a6"},"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/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling 200 19ms","method":"POST","requestID":"54ce5290-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/fcad0c5a-5595-4d83-938d-68735e4032b3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"} gateway-1 | {"time_local":"21/May/2024:16:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e5bc5898787aabb151b88f854f36abdf"} gateway-1 | {"time_local":"21/May/2024:16:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3193","request_time":"4.254","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e90f28f7b8b24de476f227973fee4e7a"} experiment-1 | {"level":"info","message":"DELETE /experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f 204 186ms","method":"DELETE","requestID":"e5bc5898787aabb151b88f854f36abdf","responseTime":186,"status":204,"url":"/experiments/6fb1f7f0-81ed-4821-97e3-eb9a6fb1b38f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"fac61e61e872aa078886b1795132fc62","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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":"fac61e61e872aa078886b1795132fc62"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"5606a578198e073c060ab27bdcf9f450","responseTime":144,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.152","http_referrer":"","http_user_agent":"node-fetch","requestID":"5606a578198e073c060ab27bdcf9f450"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"058bdf1ce5f6153fe213da4b1c9f4709","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d014cd72-369b-46ab-b469-7f49a90c2545' closed"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.933733,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} gateway-1 | {"time_local":"21/May/2024:16:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2702","request_time":"2.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":"138bd02c5fb9f32c68182996758351e8"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308125,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI"} 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":"058bdf1ce5f6153fe213da4b1c9f4709"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8cdf4c78-4d67-4efc-a371-3e0faae39ae0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3306072} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"058bdf1ce5f6153fe213da4b1c9f4709"},"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/fcad0c5a-5595-4d83-938d-68735e4032b3' 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6afac219-8adf-4f91-af01-a1bc6c0c2fc5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3365314} 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":"058bdf1ce5f6153fe213da4b1c9f4709"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"e9fc9473-5d9f-4807-b478-4c24fb83724f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3494546} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"84834952-66a1-4827-a806-728b8d380bcb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3497164} 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":"058bdf1ce5f6153fe213da4b1c9f4709"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.349430950Z"}]},"request_id":"e624de36-97d5-45ea-bc1c-5a45f8aeb08e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3540375} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"058bdf1ce5f6153fe213da4b1c9f4709"},"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":"21/May/2024:16:15: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.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"058bdf1ce5f6153fe213da4b1c9f4709"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"058bdf1ce5f6153fe213da4b1c9f4709","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f0f4613c715701297c2366fd475dc1db","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.68681,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308125,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI"} 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":"f0f4613c715701297c2366fd475dc1db"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8a746d07-ef41-49d2-9244-0eccf59353d8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3763251} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0f4613c715701297c2366fd475dc1db"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ae062fdc-a400-4141-86c5-cd5566f735b7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3809848} 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":"f0f4613c715701297c2366fd475dc1db"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"7a91f913-a1db-43a9-9fe2-8e1f1b6b284e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3898466} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f8b22f4c-5678-4d1c-a8a6-5ee8dfc09389","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3901176} 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":"f0f4613c715701297c2366fd475dc1db"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.389822326Z"}]},"request_id":"bcbaefb4-7c57-45fd-bd4e-caf5ca84577f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.3939977} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0f4613c715701297c2366fd475dc1db"},"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":"f0f4613c715701297c2366fd475dc1db","responseTime":34,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f0f4613c715701297c2366fd475dc1db"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"02373e6d9ae20f8c2bd8f328a9c26ed4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.668459,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308125,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI"} 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":"02373e6d9ae20f8c2bd8f328a9c26ed4"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.349430950Z"}]},"request_id":"7c584c50-45a1-4ade-aaea-8f52286b11b1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.8812761} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02373e6d9ae20f8c2bd8f328a9c26ed4"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"04885918-8cc3-4e03-af85-c7ad03de2b41","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.887673} 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":"02373e6d9ae20f8c2bd8f328a9c26ed4"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.349430950Z"}]},"request_id":"f45b0ba7-cf7a-4b69-a6d6-83ddad1266f2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308125.916193} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02373e6d9ae20f8c2bd8f328a9c26ed4"},"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/1b45bc23-80d6-4058-a035-86d6b4af9d81 200 46ms","method":"PATCH","requestID":"02373e6d9ae20f8c2bd8f328a9c26ed4","responseTime":46,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81"} gateway-1 | {"time_local":"21/May/2024:16:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1b45bc23-80d6-4058-a035-86d6b4af9d81 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"02373e6d9ae20f8c2bd8f328a9c26ed4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"abe925d2bb7488fb0aa08598455c8bfb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.208581,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308125,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyNX0.xt1qh-cc8HgwOhxGwgT2WpTrhmARjhU6bbQlRtJP2JI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"abe925d2bb7488fb0aa08598455c8bfb"},"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/1b45bc23-80d6-4058-a035-86d6b4af9d81/websocket 200 23ms","method":"POST","requestID":"abe925d2bb7488fb0aa08598455c8bfb","responseTime":23,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/websocket"} gateway-1 | {"time_local":"21/May/2024:16:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/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":"abe925d2bb7488fb0aa08598455c8bfb"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81' 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":"8846f723d5290417d799a5d991bedf39","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/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":"8846f723d5290417d799a5d991bedf39"} device-1 | {"level":"info","message":"OPTIONS /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/websocket 200 1ms","method":"OPTIONS","requestID":"8846f723d5290417d799a5d991bedf39","responseTime":1,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"41de2d0ac398c6773bce9db296b56e26","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.189598,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41de2d0ac398c6773bce9db296b56e26"},"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/websocket 200 32ms","method":"POST","requestID":"41de2d0ac398c6773bce9db296b56e26","responseTime":32,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/websocket"} gateway-1 | {"time_local":"21/May/2024:16:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/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":"41de2d0ac398c6773bce9db296b56e26"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"43a3af3669bceac5f1958ac05fb19cbb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291186,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43a3af3669bceac5f1958ac05fb19cbb"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.349430950Z"}]},"request_id":"ff8f999d-3fcf-4888-b037-a21b0157e191","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.4503915} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43a3af3669bceac5f1958ac05fb19cbb"},"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/1b45bc23-80d6-4058-a035-86d6b4af9d81? 200 17ms","method":"GET","requestID":"43a3af3669bceac5f1958ac05fb19cbb","responseTime":17,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81?"} gateway-1 | {"time_local":"21/May/2024:16:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1b45bc23-80d6-4058-a035-86d6b4af9d81? 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":"43a3af3669bceac5f1958ac05fb19cbb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"00ea06d695d199ca2d3d9a9f37ea77be","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.089318,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} 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":"00ea06d695d199ca2d3d9a9f37ea77be"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.389822326Z"}]},"request_id":"b682cbf6-de54-4a1a-ba6f-511f48d1843a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.4792027} 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":"00ea06d695d199ca2d3d9a9f37ea77be"},"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8? 200 22ms","method":"GET","requestID":"00ea06d695d199ca2d3d9a9f37ea77be","responseTime":22,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8?"} gateway-1 | {"time_local":"21/May/2024:16:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8? 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":"00ea06d695d199ca2d3d9a9f37ea77be"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f21704d52e0d9351a72116d46f00ad67","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:47510","level":"info","msg":"Received request.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.273805,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} 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":"f21704d52e0d9351a72116d46f00ad67"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"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:47510","level":"info","msg":"Received request.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.187093,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"562f4220-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.215979,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"562f6930-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.349430950Z"}]},"request_id":"0a972b2c-0586-40bb-bee7-99d1550cd5cf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.5630121} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"562f4220-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.389822326Z"}]},"request_id":"948209db-77ee-4a85-8385-782f53f3d1ce","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.5644612} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"562f6930-178d-11ef-9e06-b78ba83e54a6"},"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/1b45bc23-80d6-4058-a035-86d6b4af9d81? 200 14ms","method":"GET","requestID":"562f4220-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8? 200 14ms","method":"GET","requestID":"562f6930-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"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/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.767128,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56392d30-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.860711,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56395440-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.349430950Z"}]},"request_id":"58177104-b096-4938-8716-3550a6218307","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6317177} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56392d30-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.389822326Z"}]},"request_id":"9f0c2df6-8a40-4a0c-9a10-886eac0cdd16","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6329846} authorization-1 | {"client_addr":"127.0.0.1:51490","level":"info","msg":"Received request.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56395440-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8390f395-4f0e-40b7-9197-39f6688201f6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6349921} authorization-1 | {"client_addr":"127.0.0.1:51490","level":"info","msg":"Sent response.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.050456,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","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/1b45bc23-80d6-4058-a035-86d6b4af9d81? 200 19ms","method":"GET","requestID":"56392d30-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81?"} 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":"5639a260-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffdd85f15-4d45-48bf-a902-f627d1d1fcc6#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffdd85f15-4d45-48bf-a902-f627d1d1fcc6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"ff650b7f-f9cb-4e73-8de3-6b6edda1211f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6371508} device-1 | {"level":"info","message":"GET /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8? 200 19ms","method":"GET","requestID":"56395440-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f285f4af-efe9-482e-9fcd-8ba46a526520","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6374137} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f21704d52e0d9351a72116d46f00ad67"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling 200 23ms","method":"POST","requestID":"5639a260-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"18792924-c65c-44ce-af26-f5ffd18a6868","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6485305} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.112689,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} gateway-1 | {"time_local":"21/May/2024:16:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f21704d52e0d9351a72116d46f00ad67"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","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 156ms","method":"POST","requestID":"f21704d52e0d9351a72116d46f00ad67","responseTime":156,"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":"563cafa0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling 200 12ms","method":"POST","requestID":"563cafa0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A","level":"info","message":"auth send jwt"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53182891-267e-4185-872b-69aacb45670b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6548615} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"14e32e520352e3e89c56bc2d0bc8b8c2","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.880495,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","rebac_allow":false,"scope_allow":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":"563dc110-178d-11ef-9e06-b78ba83e54a6"},"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:47510","level":"info","msg":"Received request.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.935868,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} device-1 | {"level":"info","message":"POST /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/signaling 200 11ms","method":"POST","requestID":"563dc110-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/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":"14e32e520352e3e89c56bc2d0bc8b8c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cc7fcc9e-3b83-4b25-947d-99404e745c80","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.661327} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.143996,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","rebac_allow":false,"scope_allow":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":"563ef990-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.349430950Z"}]},"request_id":"a98fe47d-9556-4033-aaeb-78ee6cd96e12","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.66509} device-1 | {"level":"info","message":"POST /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/signaling 200 8ms","method":"POST","requestID":"563ef990-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/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":"14e32e520352e3e89c56bc2d0bc8b8c2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"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":"228c41f7-0430-49e2-a56e-2970794e8a77"},{"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":"8c855c92-4f3b-40a5-80ab-d2a536a80d3f"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"772cbfee-c73c-49ac-befb-c3e37c3e2b02"}]},"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/1b45bc23-80d6-4058-a035-86d6b4af9d81"},{"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8"}],"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":"21/May/2024:16:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1b45bc23-80d6-4058-a035-86d6b4af9d81? 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":"14e32e520352e3e89c56bc2d0bc8b8c2"} device-1 | {"level":"info","message":"GET /devices/1b45bc23-80d6-4058-a035-86d6b4af9d81? 200 14ms","method":"GET","requestID":"14e32e520352e3e89c56bc2d0bc8b8c2","responseTime":14,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81?"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.75166,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"392","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5640a740-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"90e9fcf37dabcec3787a54bb308adb44","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.982735,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308127,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyN30.6ITt0IdNPIrtQYKbGbzSL1i04c8GtNrm2T9o8w3zw4A"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"90e9fcf37dabcec3787a54bb308adb44"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"155a8d0c-ac3a-4cb4-8781-ea13370ba40c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6800148} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2719491-8b6b-4124-b31d-9d64f6a8ed4a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.6802135} 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":"5640a740-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:25.389822326Z"}]},"request_id":"074d66d3-1998-4ae8-a3ce-6751b33b4484","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.683488} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"90e9fcf37dabcec3787a54bb308adb44"},"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8? 200 34ms","method":"GET","requestID":"90e9fcf37dabcec3787a54bb308adb44","responseTime":34,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8?"} gateway-1 | {"time_local":"21/May/2024:16:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"90e9fcf37dabcec3787a54bb308adb44"} 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/73ab22ca-1112-4794-ac52-32dbc6192e7a'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a'"} 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":"5640a740-178d-11ef-9e06-b78ba83e54a6","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/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06b3f800-026c-44b8-941b-af4f736b608a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.7461212} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.716603,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","rebac_allow":false,"scope_allow":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":"564bcad0-178d-11ef-9e06-b78ba83e54a6"},"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/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling 200 10ms","method":"POST","requestID":"564bcad0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b10c4471-d118-4c40-925c-d273c9383106","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308127.7577515} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.198463,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","rebac_allow":false,"scope_allow":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":"564d9f90-178d-11ef-9e06-b78ba83e54a6"},"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/signaling 200 7ms","method":"POST","requestID":"564d9f90-178d-11ef-9e06-b78ba83e54a6","responseTime":7,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/signaling"} device-1 | {"data":{"peerconnection":"73ab22ca-1112-4794-ac52-32dbc6192e7a","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/73ab22ca-1112-4794-ac52-32dbc6192e7a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"73ab22ca-1112-4794-ac52-32dbc6192e7a","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":"8c512397bac2628de22bf3620063126e","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/1b45bc23-80d6-4058-a035-86d6b4af9d81"},{"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"8c512397bac2628de22bf3620063126e","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"8c512397bac2628de22bf3620063126e"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8'"} device-1 | {"data":{"peerconnection":"73ab22ca-1112-4794-ac52-32dbc6192e7a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"73ab22ca-1112-4794-ac52-32dbc6192e7a","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/73ab22ca-1112-4794-ac52-32dbc6192e7a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"73ab22ca-1112-4794-ac52-32dbc6192e7a","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":"bd71b39846b5ed7483b9cea7375ad694","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/1b45bc23-80d6-4058-a035-86d6b4af9d81"},{"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F73ab22ca-1112-4794-ac52-32dbc6192e7a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b866a94-7f97-482d-bcbd-eae0a0097e97","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308129.8768983} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.487268,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a","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":"5790f500-178d-11ef-9e06-b78ba83e54a6"},"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/73ab22ca-1112-4794-ac52-32dbc6192e7a 200 9ms","method":"GET","requestID":"5790f500-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"bd71b39846b5ed7483b9cea7375ad694","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch","requestID":"bd71b39846b5ed7483b9cea7375ad694"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7e18a77-d440-4057-8eb7-09787139b769","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308129.911207} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.618615,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","rebac_allow":false,"scope_allow":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":"5795d700-178d-11ef-9e06-b78ba83e54a6"},"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/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling 200 14ms","method":"POST","requestID":"5795d700-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0fc1073f-2eba-46b4-95e3-44318e8d2fdd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308129.927302} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.226603,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","rebac_allow":false,"scope_allow":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":"57986f10-178d-11ef-9e06-b78ba83e54a6"},"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/signaling 200 12ms","method":"POST","requestID":"57986f10-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyOX0.8Gdcbx5hU2C4qGVR7IoZ-YzkRBUDUWrEImUV2hh5n78","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ab80c63fb3530f55563e619e7274e00e","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.158144,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308129,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyOX0.8Gdcbx5hU2C4qGVR7IoZ-YzkRBUDUWrEImUV2hh5n78"} 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":"ab80c63fb3530f55563e619e7274e00e"},"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/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"} gateway-1 | {"time_local":"21/May/2024:16:15:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6 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":"ab80c63fb3530f55563e619e7274e00e"} experiment-1 | {"level":"info","message":"GET /experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6 200 14ms","method":"GET","requestID":"ab80c63fb3530f55563e619e7274e00e","responseTime":14,"status":200,"url":"/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyOX0.8Gdcbx5hU2C4qGVR7IoZ-YzkRBUDUWrEImUV2hh5n78","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5746f862edad62583fcac50cd4f663dd","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.131482,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308129,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyOX0.8Gdcbx5hU2C4qGVR7IoZ-YzkRBUDUWrEImUV2hh5n78"} 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":"5746f862edad62583fcac50cd4f663dd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.750367,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308129,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEyOX0.8Gdcbx5hU2C4qGVR7IoZ-YzkRBUDUWrEImUV2hh5n78"} 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":"57a25a20-178d-11ef-9e06-b78ba83e54a6"},"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/73ab22ca-1112-4794-ac52-32dbc6192e7a' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"73ab22ca-1112-4794-ac52-32dbc6192e7a","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":"da081af5b271a1bf4d600cad003c80c8","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81"},{"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"438c2c0897e19184a7c0a90ec754389b","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F73ab22ca-1112-4794-ac52-32dbc6192e7a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F73ab22ca-1112-4794-ac52-32dbc6192e7a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"e6afe74d-b90e-47d9-9607-b32deb82a0c4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.0165515} 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/1b45bc23-80d6-4058-a035-86d6b4af9d81"},{"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a"}}},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0e47d1b6-6121-45ac-af5b-19eb9606a283","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.0168219} 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":"57a25a20-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"data":{"peerconnection":"73ab22ca-1112-4794-ac52-32dbc6192e7a","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/73ab22ca-1112-4794-ac52-32dbc6192e7a 204 66ms","method":"DELETE","requestID":"57a25a20-178d-11ef-9e06-b78ba83e54a6","responseTime":66,"status":204,"url":"/peerconnections/73ab22ca-1112-4794-ac52-32dbc6192e7a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b45bc23-80d6-4058-a035-86d6b4af9d81","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8db7be10-aedc-4940-b474-7dfb577ca714","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.0852075} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.401245,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81","object_type":"device","rebac_allow":false,"scope_allow":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":"57b03cd0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffdd85f15-4d45-48bf-a902-f627d1d1fcc6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffdd85f15-4d45-48bf-a902-f627d1d1fcc6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"b940eaf5-c4e7-4a03-85b8-8fe932b719f7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.0937395} device-1 | {"level":"info","message":"POST /devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling 200 17ms","method":"POST","requestID":"57b03cd0-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"feb2c23d-ccd0-417f-86a9-56863914c864","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.0942893} 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":"5746f862edad62583fcac50cd4f663dd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f65157e1-a6ec-4bff-8f95-691209a75ae9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.10491} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.732029,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8","object_type":"device","rebac_allow":false,"scope_allow":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":"57b34a10-178d-11ef-9e06-b78ba83e54a6"},"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/signaling 200 15ms","method":"POST","requestID":"57b34a10-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"} gateway-1 | {"time_local":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6 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":"5746f862edad62583fcac50cd4f663dd"} gateway-1 | {"time_local":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"3193","request_time":"4.207","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f9481f7897afaf42034f5609621e2268"} experiment-1 | {"level":"info","message":"DELETE /experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6 204 190ms","method":"DELETE","requestID":"5746f862edad62583fcac50cd4f663dd","responseTime":190,"status":204,"url":"/experiments/fdd85f15-4d45-48bf-a902-f627d1d1fcc6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 149ms","method":"POST","requestID":"da081af5b271a1bf4d600cad003c80c8","responseTime":149,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.153","http_referrer":"","http_user_agent":"node-fetch","requestID":"da081af5b271a1bf4d600cad003c80c8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 148ms","method":"POST","requestID":"438c2c0897e19184a7c0a90ec754389b","responseTime":148,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"438c2c0897e19184a7c0a90ec754389b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1ba821b91afef3bed95e837ac2a77749","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.826224,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} gateway-1 | {"time_local":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2702","request_time":"2.756","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d80f2a3aac3e9a777a1c8d78f75510f1"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"1ba821b91afef3bed95e837ac2a77749"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1b45bc23-80d6-4058-a035-86d6b4af9d81' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"839b183c-b23e-4742-ace0-1d51ca5258b1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.1855037} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ba821b91afef3bed95e837ac2a77749"},"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/d815e9b7-4fbc-4c9b-912e-8e6d62b6f1d8' 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66ef46b0-5608-45ba-a51f-e7c53d490e22","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.190838} 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":"1ba821b91afef3bed95e837ac2a77749"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"3f0a14b9-ffe0-42e2-b5c1-fa92995af641","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.1997063} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d4a73ac-34d7-4cc3-8e5f-2ceafe2de6c9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.1998405} 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":"1ba821b91afef3bed95e837ac2a77749"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.199681639Z"}]},"request_id":"e44a07a3-f8a2-4999-bf6e-b5284091379f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.2043571} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ba821b91afef3bed95e837ac2a77749"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"1ba821b91afef3bed95e837ac2a77749","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:15: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.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1ba821b91afef3bed95e837ac2a77749"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"59a0b23a12edb6085ae05c3a73bf0f4b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.357456,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"59a0b23a12edb6085ae05c3a73bf0f4b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2623eee4-da25-4885-a160-2851dfa6b202","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.226988} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59a0b23a12edb6085ae05c3a73bf0f4b"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"47919376-4dde-4c3a-a866-8ae35218374d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.231176} 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":"59a0b23a12edb6085ae05c3a73bf0f4b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"3b7f796b-11c0-45be-a61a-87372ef36cdd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.2428596} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5f0d4999-3c89-4fb1-8000-00e3a8a04ae7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.2431438} 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":"59a0b23a12edb6085ae05c3a73bf0f4b"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.242826345Z"}]},"request_id":"72b16ea2-3780-4455-a1a9-da3fffd5dbab","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.246759} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59a0b23a12edb6085ae05c3a73bf0f4b"},"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":"21/May/2024:16:15: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.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"59a0b23a12edb6085ae05c3a73bf0f4b"} device-1 | {"level":"info","message":"POST /devices? 201 36ms","method":"POST","requestID":"59a0b23a12edb6085ae05c3a73bf0f4b","responseTime":36,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e2857a366ad26b39885b019e91411217","responseTime":5,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2273007ddaefe601b2afa0523990920c","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:47510","level":"info","msg":"Received request.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.767839,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"e2857a366ad26b39885b019e91411217"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.567017,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"2273007ddaefe601b2afa0523990920c"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.199681639Z"}]},"request_id":"eb840f47-4cc2-4cb0-8fbc-c60fb8077edd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.7284584} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2857a366ad26b39885b019e91411217"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.242826345Z"}]},"request_id":"ccd14a34-f4f7-492f-8212-dafbd4f4bce7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.7291489} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2273007ddaefe601b2afa0523990920c"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"90bb3a3f-3066-4c45-9150-67d8ea74d679","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.7323182} 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":"e2857a366ad26b39885b019e91411217"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dbe65cf5-774d-4dd8-8232-7ae167813828","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.7333398} 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":"2273007ddaefe601b2afa0523990920c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.242826345Z"}]},"request_id":"c2f2d94b-0b23-48e0-b8e5-f62bb47a9723","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.7362235} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2273007ddaefe601b2afa0523990920c"},"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":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2273007ddaefe601b2afa0523990920c"} device-1 | {"level":"info","message":"PATCH /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885 200 17ms","method":"PATCH","requestID":"2273007ddaefe601b2afa0523990920c","responseTime":17,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"80435189fbb1c1272cf381adac8d70fe","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.773248,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"80435189fbb1c1272cf381adac8d70fe"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.199681639Z"}]},"request_id":"be70b7ac-6f40-4267-bd61-e4f3e196b69d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.755596} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2857a366ad26b39885b019e91411217"},"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":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76 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":"e2857a366ad26b39885b019e91411217"} device-1 | {"level":"info","message":"PATCH /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76 200 39ms","method":"PATCH","requestID":"e2857a366ad26b39885b019e91411217","responseTime":39,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/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":"80435189fbb1c1272cf381adac8d70fe"} device-1 | {"level":"info","message":"POST /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/websocket 200 20ms","method":"POST","requestID":"80435189fbb1c1272cf381adac8d70fe","responseTime":20,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/websocket"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2dc827bc32d69fe25a1567b0e7682486","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.882784,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"2dc827bc32d69fe25a1567b0e7682486"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"device 'http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/websocket 200 23ms","method":"POST","requestID":"2dc827bc32d69fe25a1567b0e7682486","responseTime":23,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/websocket"} gateway-1 | {"time_local":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/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":"2dc827bc32d69fe25a1567b0e7682486"} device-1 | {"level":"info","message":"device 'http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9d83232ad4a09b3051870ba2ef52c78f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670325,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"9d83232ad4a09b3051870ba2ef52c78f"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.199681639Z"}]},"request_id":"cbd1beac-b5e4-46c5-b414-5135b3c9f631","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.811906} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9d83232ad4a09b3051870ba2ef52c78f"},"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":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9d83232ad4a09b3051870ba2ef52c78f"} device-1 | {"level":"info","message":"GET /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76? 200 11ms","method":"GET","requestID":"9d83232ad4a09b3051870ba2ef52c78f","responseTime":11,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"67d7b801033f07363c88b812f2fe3e88","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.89784,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"67d7b801033f07363c88b812f2fe3e88"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.242826345Z"}]},"request_id":"35819477-3965-4fbf-90ce-13e9ba6760b7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.828362} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"67d7b801033f07363c88b812f2fe3e88"},"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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885? 200 12ms","method":"GET","requestID":"67d7b801033f07363c88b812f2fe3e88","responseTime":12,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885?"} gateway-1 | {"time_local":"21/May/2024:16:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885? 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":"67d7b801033f07363c88b812f2fe3e88"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"dffc8081f1c4e4f43539b36dc316579d","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:47510","level":"info","msg":"Received request.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.670337,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"dffc8081f1c4e4f43539b36dc316579d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"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:47510","level":"info","msg":"Received request.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.833427,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"582cbfd0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.946754,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"582d0df0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.199681639Z"}]},"request_id":"cbc53e26-9b03-4e31-aba6-ba18e0aa7ebe","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.90569} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"582cbfd0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.242826345Z"}]},"request_id":"2dd3612f-20eb-4794-8c61-fc25b37d7d00","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.9069264} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"582d0df0-178d-11ef-9e06-b78ba83e54a6"},"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76? 200 23ms","method":"GET","requestID":"582cbfd0-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885? 200 22ms","method":"GET","requestID":"582d0df0-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"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:47510","level":"info","msg":"Received request.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.52057,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"5839b820-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.636655,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:51490","level":"info","msg":"Received request.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"583a0640-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:51490","level":"info","msg":"Sent response.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.758321,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:30Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"89ddfdfb-7f61-474a-9117-1cee612a5f5e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.9896874} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","rebac_allow":false,"scope_allow":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":"583a5460-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling 200 19ms","method":"POST","requestID":"583a5460-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.199681639Z"}]},"request_id":"d81ee010-eefb-419c-811a-054a8e70e400","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308130.9962404} 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":"5839b820-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.242826345Z"}]},"request_id":"b383eb2b-7eab-484c-8f57-e15ca3de343b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0035174} 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":"583a0640-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F325f0eaa-5b33-4443-a217-798b15c6c36a#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F325f0eaa-5b33-4443-a217-798b15c6c36a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"9bfb1d39-aed2-4aa7-85aa-0d15e2d5e2bf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0056245} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1241bab8-0d8a-4f06-a273-56db790959a8","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0069082} 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":"dffc8081f1c4e4f43539b36dc316579d"},"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:47510","level":"info","msg":"Received request.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:31Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"868f990c-f717-4270-9743-1efa09824d6d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0103512} device-1 | {"level":"info","message":"GET /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76? 200 32ms","method":"GET","requestID":"5839b820-178d-11ef-9e06-b78ba83e54a6","responseTime":32,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.151512,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:31Z"} device-1 | {"level":"info","message":"GET /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885? 200 32ms","method":"GET","requestID":"583a0640-178d-11ef-9e06-b78ba83e54a6","responseTime":32,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","rebac_allow":false,"scope_allow":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":"583d88b0-178d-11ef-9e06-b78ba83e54a6"},"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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling 200 13ms","method":"POST","requestID":"583d88b0-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:31Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"21/May/2024:16:15: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.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dffc8081f1c4e4f43539b36dc316579d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 185ms","method":"POST","requestID":"dffc8081f1c4e4f43539b36dc316579d","responseTime":185,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b9b18798-0acd-4d94-bd1f-e53b80b49b72","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0241919} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.331088,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","rebac_allow":false,"scope_allow":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":"583fd2a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMX0.0ppuWNMJHR9UD9xF858SAFZebAiwzaBI87bZVPo_SWQ","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling 200 10ms","method":"POST","requestID":"583fd2a0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ca8248a94503cfdb2f19ea7fe9352080","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:47510","level":"info","msg":"Received request.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.605747,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308131,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMX0.0ppuWNMJHR9UD9xF858SAFZebAiwzaBI87bZVPo_SWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca8248a94503cfdb2f19ea7fe9352080"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"da61a789-3cfe-4b81-9dd9-ba3ca3d21627","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0349705} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.574572,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","rebac_allow":false,"scope_allow":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":"5841ce70-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.199681639Z"}]},"request_id":"72d6f9bf-0a77-405e-a0af-11c8e4263535","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0378184} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca8248a94503cfdb2f19ea7fe9352080"},"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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling 200 11ms","method":"POST","requestID":"5841ce70-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76? 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":"ca8248a94503cfdb2f19ea7fe9352080"} device-1 | {"level":"info","message":"GET /devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76? 200 14ms","method":"GET","requestID":"ca8248a94503cfdb2f19ea7fe9352080","responseTime":14,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"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":"88f4ee51-8b3d-4404-af5f-02c31b2cbfff"},{"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":"0090b363-2fcf-4b98-8326-d5e8c07a5396"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"860b8379-72b6-4b91-b216-9131dc45fa81"}]},"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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885"},{"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:31Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMX0.0ppuWNMJHR9UD9xF858SAFZebAiwzaBI87bZVPo_SWQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7c7fb583afc773bb890b4dbd7597da58","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.9613,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:31Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308130,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMH0.xTtwsIN4IisxBW37xK_OzKKDt_RSMFBq_-_6Nl0HMm4"} 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":"5843f150-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.757971,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308131,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzMX0.0ppuWNMJHR9UD9xF858SAFZebAiwzaBI87bZVPo_SWQ"} 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":"7c7fb583afc773bb890b4dbd7597da58"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"16c6a452-a667-49eb-afbc-7df0bf119caf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0571258} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79a00084-0244-4251-b390-d860bf838400","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.0575213} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:30.242826345Z"}]},"request_id":"2743970a-a606-4bd6-94ca-72fd7f9ea338","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.057783} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c7fb583afc773bb890b4dbd7597da58"},"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 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":"5843f150-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885? 200 15ms","method":"GET","requestID":"7c7fb583afc773bb890b4dbd7597da58","responseTime":15,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885?"} gateway-1 | {"time_local":"21/May/2024:16:15:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885? 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":"7c7fb583afc773bb890b4dbd7597da58"} 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/e9377ecd-b8c2-44e0-8cce-766ee3d7511d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d'"} 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":"5843f150-178d-11ef-9e06-b78ba83e54a6","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/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b1e12f0-1f4b-490a-93dd-b40a06028659","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.1163266} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.93551,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","rebac_allow":false,"scope_allow":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":"584e0370-178d-11ef-9e06-b78ba83e54a6"},"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling 200 10ms","method":"POST","requestID":"584e0370-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1136a272-9c1b-45a4-9de8-de39f5cf0701","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308131.1279538} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.825817,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","rebac_allow":false,"scope_allow":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":"584fd830-178d-11ef-9e06-b78ba83e54a6"},"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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling 200 10ms","method":"POST","requestID":"584fd830-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling"} device-1 | {"data":{"peerconnection":"e9377ecd-b8c2-44e0-8cce-766ee3d7511d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"e9377ecd-b8c2-44e0-8cce-766ee3d7511d","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/e9377ecd-b8c2-44e0-8cce-766ee3d7511d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e9377ecd-b8c2-44e0-8cce-766ee3d7511d","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":"0ba5cccbda6309b607b4d993ea14b1e2","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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885"},{"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"0ba5cccbda6309b607b4d993ea14b1e2","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"0ba5cccbda6309b607b4d993ea14b1e2"} device-1 | {"data":{"peerconnection":"e9377ecd-b8c2-44e0-8cce-766ee3d7511d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"e9377ecd-b8c2-44e0-8cce-766ee3d7511d","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/e9377ecd-b8c2-44e0-8cce-766ee3d7511d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e9377ecd-b8c2-44e0-8cce-766ee3d7511d","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":"cac941677609c979c0fc45ccfadec833","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885"},{"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe9377ecd-b8c2-44e0-8cce-766ee3d7511d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"504c81ff-c499-4b39-aeef-ae48f7ccd8c5","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.2031324} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.807436,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d","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":"598c4fd0-178d-11ef-9e06-b78ba83e54a6"},"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/e9377ecd-b8c2-44e0-8cce-766ee3d7511d 200 12ms","method":"GET","requestID":"598c4fd0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"cac941677609c979c0fc45ccfadec833","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch","requestID":"cac941677609c979c0fc45ccfadec833"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0d8594a8-2af5-4f10-a4d1-64d767da0ebc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.2342575} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.779583,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","rebac_allow":false,"scope_allow":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":"5990e3b0-178d-11ef-9e06-b78ba83e54a6"},"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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling 200 14ms","method":"POST","requestID":"5990e3b0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"55a7b43a-3347-4f18-ae1d-46b1a9fb452a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.2498171} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.61516,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","rebac_allow":false,"scope_allow":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":"599354b0-178d-11ef-9e06-b78ba83e54a6"},"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling 200 14ms","method":"POST","requestID":"599354b0-178d-11ef-9e06-b78ba83e54a6","responseTime":14,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c6bc9ba07e4037f5182c400e3be9e338","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.254549,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308133,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y"} 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":"c6bc9ba07e4037f5182c400e3be9e338"},"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/325f0eaa-5b33-4443-a217-798b15c6c36a"} gateway-1 | {"time_local":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/325f0eaa-5b33-4443-a217-798b15c6c36a 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":"c6bc9ba07e4037f5182c400e3be9e338"} experiment-1 | {"level":"info","message":"GET /experiments/325f0eaa-5b33-4443-a217-798b15c6c36a 200 15ms","method":"GET","requestID":"c6bc9ba07e4037f5182c400e3be9e338","responseTime":15,"status":200,"url":"/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9bfc52f8d788269bb1fe34e3b9cff9df","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.365957,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308133,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y"} 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":"9bfc52f8d788269bb1fe34e3b9cff9df"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.265628,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308133,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y"} 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":"59a07410-178d-11ef-9e06-b78ba83e54a6"},"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/e9377ecd-b8c2-44e0-8cce-766ee3d7511d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e9377ecd-b8c2-44e0-8cce-766ee3d7511d","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":"c412c8ac58662701a73ee710d8952718","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe9377ecd-b8c2-44e0-8cce-766ee3d7511d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe9377ecd-b8c2-44e0-8cce-766ee3d7511d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"a9785525-1139-4241-bff4-52a79bc92226","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.3558254} 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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885"},{"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d"}}},"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 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c35dc507-fa47-4803-87c7-00871b53ff3c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.3573067} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"77e586cabcc863364deb08b429c2efea","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59a07410-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885"},{"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"e9377ecd-b8c2-44e0-8cce-766ee3d7511d","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/e9377ecd-b8c2-44e0-8cce-766ee3d7511d 204 60ms","method":"DELETE","requestID":"59a07410-178d-11ef-9e06-b78ba83e54a6","responseTime":60,"status":204,"url":"/peerconnections/e9377ecd-b8c2-44e0-8cce-766ee3d7511d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1573bba6-fbdb-48d9-a0ed-e09ee82cb885","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0b298e3b-af14-47fc-b17a-7acce25c3746","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.4193428} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.753663,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885","object_type":"device","rebac_allow":false,"scope_allow":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":"59ad4550-178d-11ef-9e06-b78ba83e54a6"},"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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling 200 13ms","method":"POST","requestID":"59ad4550-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/1573bba6-fbdb-48d9-a0ed-e09ee82cb885/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F325f0eaa-5b33-4443-a217-798b15c6c36a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F325f0eaa-5b33-4443-a217-798b15c6c36a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"009a6d3e-d005-40e0-aef2-cc8fefdf641b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.430578} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"621b481e-8647-454d-ac42-bcc9fd652fc9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.430997} 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":"9bfc52f8d788269bb1fe34e3b9cff9df"},"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:47510","level":"info","msg":"Received request.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F17bfbdae-4ecf-4fec-807e-0c9bbb764e76","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6942017f-f340-4b8b-bd94-b5d922ee1b7a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.4391837} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.975726,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76","object_type":"device","rebac_allow":false,"scope_allow":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":"59afdd60-178d-11ef-9e06-b78ba83e54a6"},"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling 200 16ms","method":"POST","requestID":"59afdd60-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/17bfbdae-4ecf-4fec-807e-0c9bbb764e76/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"} gateway-1 | {"time_local":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/325f0eaa-5b33-4443-a217-798b15c6c36a 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":"9bfc52f8d788269bb1fe34e3b9cff9df"} experiment-1 | {"level":"info","message":"DELETE /experiments/325f0eaa-5b33-4443-a217-798b15c6c36a 204 182ms","method":"DELETE","requestID":"9bfc52f8d788269bb1fe34e3b9cff9df","responseTime":182,"status":204,"url":"/experiments/325f0eaa-5b33-4443-a217-798b15c6c36a"} gateway-1 | {"time_local":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2709","request_time":"2.706","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4e50ca8325e0595be2df7f8c643803e1"} gateway-1 | {"time_local":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2707","request_time":"2.730","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3b089944821ea4027b26895ecff7c0ae"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"c412c8ac58662701a73ee710d8952718","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.147","http_referrer":"","http_user_agent":"node-fetch","requestID":"c412c8ac58662701a73ee710d8952718"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"77e586cabcc863364deb08b429c2efea","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.148","http_referrer":"","http_user_agent":"node-fetch","requestID":"77e586cabcc863364deb08b429c2efea"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"654cc0ffbe6bbd3d0c5db7678ace7530","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/1573bba6-fbdb-48d9-a0ed-e09ee82cb885' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.924812,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308133,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y"} 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":"654cc0ffbe6bbd3d0c5db7678ace7530"},"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/17bfbdae-4ecf-4fec-807e-0c9bbb764e76' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f46152dc-848f-40ae-9187-38115cce15f2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.524541} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"654cc0ffbe6bbd3d0c5db7678ace7530"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d9ddb11-27de-4977-b690-ea8b74dae985","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5307636} 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":"654cc0ffbe6bbd3d0c5db7678ace7530"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"72a7b9df-8419-4dfe-a03d-2a57bb6b1bfb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5407264} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9da0ff6e-5b82-42fa-a147-158c6f31f82c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5410097} 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":"654cc0ffbe6bbd3d0c5db7678ace7530"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.540688826Z"}]},"request_id":"489d7ae8-5245-420d-a082-e6bf728e0ca1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5460293} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"654cc0ffbe6bbd3d0c5db7678ace7530"},"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":"21/May/2024:16:15:33 +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":"654cc0ffbe6bbd3d0c5db7678ace7530"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"654cc0ffbe6bbd3d0c5db7678ace7530","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d43dc40766a26b99bd62c90c71e8c96d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.793338,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308133,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzM30.qBjl4R608Sk7yrre23FOfiE094N3z04eXl_Yy9HgL2Y"} 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":"d43dc40766a26b99bd62c90c71e8c96d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e0cd28c8-bade-4ec2-b9e9-bf58883a06d1","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5738876} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d43dc40766a26b99bd62c90c71e8c96d"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d68e2924-2047-488e-bc6f-9480475e28ac","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5790987} 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":"d43dc40766a26b99bd62c90c71e8c96d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"02505a52-f5a1-4bc1-a069-23811f810112","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5903842} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1af3aaa6-15c8-4e28-a04b-f42fdab7a5ce","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5904715} 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":"d43dc40766a26b99bd62c90c71e8c96d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.590349396Z"}]},"request_id":"13bfd9c9-b83d-40f0-8f99-9194bda08908","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308133.5950005} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d43dc40766a26b99bd62c90c71e8c96d"},"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":"21/May/2024:16:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d43dc40766a26b99bd62c90c71e8c96d"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"d43dc40766a26b99bd62c90c71e8c96d","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8f94e1126b116cd0fb7f2c61e62da5b1","responseTime":5,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ef92ddb1070ab591f643e63ac424540a","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:47510","level":"info","msg":"Received request.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732045,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"8f94e1126b116cd0fb7f2c61e62da5b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.76816,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef92ddb1070ab591f643e63ac424540a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.540688826Z"}]},"request_id":"6e30fc88-b40b-4c0f-a46b-ff0159f66981","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.078999} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8f94e1126b116cd0fb7f2c61e62da5b1"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.590349396Z"}]},"request_id":"952681b0-9868-4c14-89c2-ca850a73145f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.0796075} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef92ddb1070ab591f643e63ac424540a"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"05b68d39-9285-4edc-87fe-626fd3ad4782","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.0836692} 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":"8f94e1126b116cd0fb7f2c61e62da5b1"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad7b6c6f-3604-4a9a-a605-50fd3960367f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.0849872} 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":"ef92ddb1070ab591f643e63ac424540a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.590349396Z"}]},"request_id":"24d1bf0c-dd38-434d-aa7f-e895b9753667","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.089134} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef92ddb1070ab591f643e63ac424540a"},"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":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/77ddfa83-dc18-476c-a379-8e821843911f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.028","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ef92ddb1070ab591f643e63ac424540a"} device-1 | {"level":"info","message":"PATCH /devices/77ddfa83-dc18-476c-a379-8e821843911f 200 22ms","method":"PATCH","requestID":"ef92ddb1070ab591f643e63ac424540a","responseTime":22,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b09de54ee6116266674a4551f729a250","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.745767,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"b09de54ee6116266674a4551f729a250"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.540688826Z"}]},"request_id":"82f64e04-b8e4-498c-b3ef-dfe81d87c55b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.101173} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8f94e1126b116cd0fb7f2c61e62da5b1"},"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":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8f94e1126b116cd0fb7f2c61e62da5b1"} device-1 | {"level":"info","message":"PATCH /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a 200 38ms","method":"PATCH","requestID":"8f94e1126b116cd0fb7f2c61e62da5b1","responseTime":38,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2f74ec6ee50e8df64d7156ae441423ae","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.862887,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"2f74ec6ee50e8df64d7156ae441423ae"},"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":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/77ddfa83-dc18-476c-a379-8e821843911f/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":"b09de54ee6116266674a4551f729a250"} device-1 | {"level":"info","message":"POST /devices/77ddfa83-dc18-476c-a379-8e821843911f/websocket 200 22ms","method":"POST","requestID":"b09de54ee6116266674a4551f729a250","responseTime":22,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/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":"2f74ec6ee50e8df64d7156ae441423ae"} device-1 | {"level":"info","message":"POST /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/websocket 200 21ms","method":"POST","requestID":"2f74ec6ee50e8df64d7156ae441423ae","responseTime":21,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9fe6df64da0e02dd94a0c63f7a49630d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.003605,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"9fe6df64da0e02dd94a0c63f7a49630d"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.540688826Z"}]},"request_id":"45f4edd2-af47-465e-80b5-2dd88b664f1d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.1617703} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9fe6df64da0e02dd94a0c63f7a49630d"},"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/9833408f-eaee-4ef5-9307-bd91ff174b6a? 200 9ms","method":"GET","requestID":"9fe6df64da0e02dd94a0c63f7a49630d","responseTime":9,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a?"} gateway-1 | {"time_local":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9fe6df64da0e02dd94a0c63f7a49630d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0c90d28ab02c234082ae70267de9a38f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.640788,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"0c90d28ab02c234082ae70267de9a38f"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.590349396Z"}]},"request_id":"b008651a-8562-420c-a3aa-477c4f84a06b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.1759856} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0c90d28ab02c234082ae70267de9a38f"},"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":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/77ddfa83-dc18-476c-a379-8e821843911f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c90d28ab02c234082ae70267de9a38f"} device-1 | {"level":"info","message":"GET /devices/77ddfa83-dc18-476c-a379-8e821843911f? 200 9ms","method":"GET","requestID":"0c90d28ab02c234082ae70267de9a38f","responseTime":9,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bec6c59eeeb955a97109ed076c5229ce","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:47510","level":"info","msg":"Received request.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.26215,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"bec6c59eeeb955a97109ed076c5229ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"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:47510","level":"info","msg":"Received request.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.143875,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5a2b4ef0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.376599,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5a2b9d10-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.540688826Z"}]},"request_id":"9f4a125b-1db7-425b-b439-0b7a8a168977","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.2529445} 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":"5a2b4ef0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.590349396Z"}]},"request_id":"e5e9a21a-eaf2-48d0-a9df-6a13edfff309","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.2549787} 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":"5a2b9d10-178d-11ef-9e06-b78ba83e54a6"},"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/9833408f-eaee-4ef5-9307-bd91ff174b6a? 200 23ms","method":"GET","requestID":"5a2b4ef0-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/77ddfa83-dc18-476c-a379-8e821843911f? 200 23ms","method":"GET","requestID":"5a2b9d10-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"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:47510","level":"info","msg":"Received request.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693278,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Successfully running 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":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5a382030-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.237017,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"5a386e50-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.635758,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"69d0859c-f68f-4bff-a6f0-1162552b688c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.3365264} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.540688826Z"}]},"request_id":"31abfe44-9bc8-49e9-ac48-bae55d9670f6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.3395815} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","rebac_allow":false,"scope_allow":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":"5a38e380-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.590349396Z"}]},"request_id":"6afc5230-432f-4984-9732-396e2bc1884a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.341505} 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":"5a382030-178d-11ef-9e06-b78ba83e54a6"},"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":"5a386e50-178d-11ef-9e06-b78ba83e54a6"},"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/9833408f-eaee-4ef5-9307-bd91ff174b6a? 200 27ms","method":"GET","requestID":"5a382030-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling 200 23ms","method":"POST","requestID":"5a38e380-178d-11ef-9e06-b78ba83e54a6","responseTime":23,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F70861898-baa2-42e0-a85a-38f4b34f3c70#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F70861898-baa2-42e0-a85a-38f4b34f3c70","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"ae7c31b8-ce18-4941-aec1-a63b1bc127ae","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.3512907} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"989f210d-e7dd-41cb-85de-fa65b0e0ec3f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.351617} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/77ddfa83-dc18-476c-a379-8e821843911f? 200 27ms","method":"GET","requestID":"5a386e50-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f?"} 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":"bec6c59eeeb955a97109ed076c5229ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"13c3669e-84e5-4f43-b0a4-78543dc77d10","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.3609748} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.253846,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","rebac_allow":false,"scope_allow":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":"5a3d2940-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.984903,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6bee07bc-9c6e-421a-bcbe-4d13ca4e3daf","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.362806} gateway-1 | {"time_local":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bec6c59eeeb955a97109ed076c5229ce"} experiment-1 | {"level":"info","message":"POST /experiments? 201 179ms","method":"POST","requestID":"bec6c59eeeb955a97109ed076c5229ce","responseTime":179,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","rebac_allow":false,"scope_allow":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":"5a3d5050-178d-11ef-9e06-b78ba83e54a6"},"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/77ddfa83-dc18-476c-a379-8e821843911f/signaling 200 11ms","method":"POST","requestID":"5a3d2940-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling 200 12ms","method":"POST","requestID":"5a3d5050-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f255e7d1693ee6f75466ec89640b21b7","responseTime":4,"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:47510","level":"info","msg":"Received request.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Received request.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.783996,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f255e7d1693ee6f75466ec89640b21b7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3e1f19c1-660b-4e3a-9650-5da70de3028c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.375423} authorization-1 | {"client_addr":"127.0.0.1:59980","level":"info","msg":"Sent response.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.526488,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","rebac_allow":false,"scope_allow":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":"5a3f7330-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.540688826Z"}]},"request_id":"90b0ef3b-742c-4be5-a4b4-c3f6a6f8d829","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.3790119} device-1 | {"level":"info","message":"POST /devices/77ddfa83-dc18-476c-a379-8e821843911f/signaling 200 8ms","method":"POST","requestID":"5a3f7330-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"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":"bf4ca1b9-7295-442c-9dcd-f4c948fdca16"},{"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":"c6293c28-95a3-405d-82ab-85b3014abf43"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"868140c7-3141-47de-bd7d-7e870631437b"}]},"level":"info","message":"Built pairwise service configurations"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f255e7d1693ee6f75466ec89640b21b7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} 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/9833408f-eaee-4ef5-9307-bd91ff174b6a"},{"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/77ddfa83-dc18-476c-a379-8e821843911f"}],"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:47510","level":"info","msg":"Received request.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} device-1 | {"level":"info","message":"GET /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a? 200 14ms","method":"GET","requestID":"f255e7d1693ee6f75466ec89640b21b7","responseTime":14,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a?"} gateway-1 | {"time_local":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9833408f-eaee-4ef5-9307-bd91ff174b6a? 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":"f255e7d1693ee6f75466ec89640b21b7"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.984774,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"5a40f9d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"810725326e2139929ce792ba83551693","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.809776,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308134,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNH0.D_wEll6BelTZpVitpiF-1BINbtZPjqXrSMBU8RIxzJw"} 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":"810725326e2139929ce792ba83551693"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"2ed62c8f-792b-4e57-8b1e-32b370ea925a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.3952856} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"04d1a6c7-4550-4881-92a6-d52281ea885d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.3953853} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:33.590349396Z"}]},"request_id":"9d501b5c-62da-4c43-a12d-6fc4de672f2c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.3959785} 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":"5a40f9d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"810725326e2139929ce792ba83551693"},"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":"21/May/2024:16:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/77ddfa83-dc18-476c-a379-8e821843911f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"810725326e2139929ce792ba83551693"} device-1 | {"level":"info","message":"GET /devices/77ddfa83-dc18-476c-a379-8e821843911f? 200 11ms","method":"GET","requestID":"810725326e2139929ce792ba83551693","responseTime":11,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f?"} 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/ad877e94-b942-420f-8be4-397aba221db7'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7'"} 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":"5a40f9d0-178d-11ef-9e06-b78ba83e54a6","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/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"995b6307-6bd2-4086-8ce7-517774fa659d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.463242} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.853515,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","rebac_allow":false,"scope_allow":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":"5a4c9290-178d-11ef-9e06-b78ba83e54a6"},"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/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling 200 12ms","method":"POST","requestID":"5a4c9290-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cb88557f-75ed-4b5e-8cbb-35713b8cce7c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308134.4780028} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.685244,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","rebac_allow":false,"scope_allow":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":"5a4edc80-178d-11ef-9e06-b78ba83e54a6"},"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/77ddfa83-dc18-476c-a379-8e821843911f/signaling 200 12ms","method":"POST","requestID":"5a4edc80-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f/signaling"} device-1 | {"data":{"peerconnection":"ad877e94-b942-420f-8be4-397aba221db7","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ad877e94-b942-420f-8be4-397aba221db7","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/ad877e94-b942-420f-8be4-397aba221db7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ad877e94-b942-420f-8be4-397aba221db7","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":"3241be6199028137fbff5d7eab010ad3","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/9833408f-eaee-4ef5-9307-bd91ff174b6a"},{"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/77ddfa83-dc18-476c-a379-8e821843911f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"3241be6199028137fbff5d7eab010ad3","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"3241be6199028137fbff5d7eab010ad3"} device-1 | {"data":{"peerconnection":"ad877e94-b942-420f-8be4-397aba221db7","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ad877e94-b942-420f-8be4-397aba221db7","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/ad877e94-b942-420f-8be4-397aba221db7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ad877e94-b942-420f-8be4-397aba221db7","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":"95948aa62737e0b7bcfdcae7619a500d","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/9833408f-eaee-4ef5-9307-bd91ff174b6a"},{"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/77ddfa83-dc18-476c-a379-8e821843911f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fad877e94-b942-420f-8be4-397aba221db7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5c457ccf-b298-461f-b575-77a6e9241f4a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.5331948} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.370961,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7","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":"5b886df0-178d-11ef-9e06-b78ba83e54a6"},"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/ad877e94-b942-420f-8be4-397aba221db7 200 10ms","method":"GET","requestID":"5b886df0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/peerconnections/ad877e94-b942-420f-8be4-397aba221db7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"95948aa62737e0b7bcfdcae7619a500d","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"95948aa62737e0b7bcfdcae7619a500d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"79255044-dfc3-4baa-8b1b-ccd385912c18","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.5602958} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.313972,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","rebac_allow":false,"scope_allow":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":"5b8c8ca0-178d-11ef-9e06-b78ba83e54a6"},"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/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling 200 12ms","method":"POST","requestID":"5b8c8ca0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4e6a4833-f24d-45d4-876c-188b301a52e9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.573735} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.862153,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","rebac_allow":false,"scope_allow":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":"5b8eaf80-178d-11ef-9e06-b78ba83e54a6"},"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/77ddfa83-dc18-476c-a379-8e821843911f/signaling 200 11ms","method":"POST","requestID":"5b8eaf80-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c77a11bf63df9b438e081af49dc0a448","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.409119,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308136,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE"} 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":"c77a11bf63df9b438e081af49dc0a448"},"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/70861898-baa2-42e0-a85a-38f4b34f3c70"} experiment-1 | {"level":"info","message":"GET /experiments/70861898-baa2-42e0-a85a-38f4b34f3c70 200 15ms","method":"GET","requestID":"c77a11bf63df9b438e081af49dc0a448","responseTime":15,"status":200,"url":"/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"} gateway-1 | {"time_local":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/70861898-baa2-42e0-a85a-38f4b34f3c70 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":"c77a11bf63df9b438e081af49dc0a448"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aea8fe767117dc63274f041331c25428","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.172438,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308136,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE"} 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":"aea8fe767117dc63274f041331c25428"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.18496,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308136,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE"} 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":"5b9c6b20-178d-11ef-9e06-b78ba83e54a6"},"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/ad877e94-b942-420f-8be4-397aba221db7' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ad877e94-b942-420f-8be4-397aba221db7","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fad877e94-b942-420f-8be4-397aba221db7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fad877e94-b942-420f-8be4-397aba221db7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"94ad8f14-a98e-4469-a06b-af12306fb88e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.6808267} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1fd71a7-1d96-44ff-89ed-b2d1f8aa0f48","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.6813958} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"16c42c725e7bee63dff5b6d2babc442d","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":"5b9c6b20-178d-11ef-9e06-b78ba83e54a6"},"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/9833408f-eaee-4ef5-9307-bd91ff174b6a"},{"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/77ddfa83-dc18-476c-a379-8e821843911f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"94f39f10b22a021373e5675ed042a109","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/9833408f-eaee-4ef5-9307-bd91ff174b6a"},{"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/77ddfa83-dc18-476c-a379-8e821843911f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ad877e94-b942-420f-8be4-397aba221db7"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ad877e94-b942-420f-8be4-397aba221db7","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/ad877e94-b942-420f-8be4-397aba221db7 204 56ms","method":"DELETE","requestID":"5b9c6b20-178d-11ef-9e06-b78ba83e54a6","responseTime":56,"status":204,"url":"/peerconnections/ad877e94-b942-420f-8be4-397aba221db7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9833408f-eaee-4ef5-9307-bd91ff174b6a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c013bfa9-739c-4fbb-abd3-42a0db20ff81","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.7432601} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.157171,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a","object_type":"device","rebac_allow":false,"scope_allow":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":"5ba87910-178d-11ef-9e06-b78ba83e54a6"},"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/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling 200 11ms","method":"POST","requestID":"5ba87910-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/9833408f-eaee-4ef5-9307-bd91ff174b6a/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F70861898-baa2-42e0-a85a-38f4b34f3c70': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F70861898-baa2-42e0-a85a-38f4b34f3c70","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"af21dd30-bfe5-4b85-8097-e5c4d65e82fe","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.7485025} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6db2413d-2f46-4d66-885e-3e32792dc75b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.74869} 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":"aea8fe767117dc63274f041331c25428"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F77ddfa83-dc18-476c-a379-8e821843911f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"faa417c0-bb3f-4c75-a496-3a9fa874f7de","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.7552226} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.32567,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/77ddfa83-dc18-476c-a379-8e821843911f","object_type":"device","rebac_allow":false,"scope_allow":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":"5baa74e0-178d-11ef-9e06-b78ba83e54a6"},"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/77ddfa83-dc18-476c-a379-8e821843911f/signaling 200 11ms","method":"POST","requestID":"5baa74e0-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":200,"url":"/devices/77ddfa83-dc18-476c-a379-8e821843911f/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"} gateway-1 | {"time_local":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/70861898-baa2-42e0-a85a-38f4b34f3c70 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aea8fe767117dc63274f041331c25428"} experiment-1 | {"level":"info","message":"DELETE /experiments/70861898-baa2-42e0-a85a-38f4b34f3c70 204 167ms","method":"DELETE","requestID":"aea8fe767117dc63274f041331c25428","responseTime":167,"status":204,"url":"/experiments/70861898-baa2-42e0-a85a-38f4b34f3c70"} gateway-1 | {"time_local":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2707","request_time":"2.689","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"18eb03d9901c2f4f91dd2e1b2b8372a9"} gateway-1 | {"time_local":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2709","request_time":"2.675","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e8b13a06ff008321ce8feae2de619e37"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 127ms","method":"POST","requestID":"16c42c725e7bee63dff5b6d2babc442d","responseTime":127,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.132","http_referrer":"","http_user_agent":"node-fetch","requestID":"16c42c725e7bee63dff5b6d2babc442d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 126ms","method":"POST","requestID":"94f39f10b22a021373e5675ed042a109","responseTime":126,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.133","http_referrer":"","http_user_agent":"node-fetch","requestID":"94f39f10b22a021373e5675ed042a109"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9119957aff6cbcbb4d419504f95f741f","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/9833408f-eaee-4ef5-9307-bd91ff174b6a' closed"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.894091,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308136,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE"} 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":"9119957aff6cbcbb4d419504f95f741f"},"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/77ddfa83-dc18-476c-a379-8e821843911f' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"332e7a57-9440-454a-91de-34fe982f5ceb","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.8360882} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9119957aff6cbcbb4d419504f95f741f"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3268f0c2-7a49-4acc-8d58-922d2c31fc66","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.8420208} 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":"9119957aff6cbcbb4d419504f95f741f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"09826c99-e644-488e-bb5e-3c1ea15d1e8d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.851819} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"363ddfb0-9f82-4b14-95ea-3581cec395db","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.8519654} 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":"9119957aff6cbcbb4d419504f95f741f"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.851783079Z"}]},"request_id":"adaaff37-f8cd-4e44-af86-b0ba78d37f5d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.8571134} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9119957aff6cbcbb4d419504f95f741f"},"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":"21/May/2024:16:15:36 +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":"9119957aff6cbcbb4d419504f95f741f"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"9119957aff6cbcbb4d419504f95f741f","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6df64380df6015d8778d4420ca5c156a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.722343,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308136,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzNn0.PL2J3UWDsh9iTbVYHcgF69BX8TmHaOSidZBJz6pd3WE"} 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":"6df64380df6015d8778d4420ca5c156a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"428fbdc7-a6c3-421b-bbf2-89c79be9ab17","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.8816433} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6df64380df6015d8778d4420ca5c156a"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cdb67e2e-3e81-429f-a83d-509290eceefa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.887229} 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":"6df64380df6015d8778d4420ca5c156a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"7666bfcf-faaa-4a18-9644-f8d3fd0cb75d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.8993666} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"73e941d2-4f29-4fd2-af8d-08982ee1077e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.899616} 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":"6df64380df6015d8778d4420ca5c156a"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.899339676Z"}]},"request_id":"775680c9-550a-4d79-bff1-cc81e3ca7629","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308136.9044209} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6df64380df6015d8778d4420ca5c156a"},"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":"21/May/2024:16:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6df64380df6015d8778d4420ca5c156a"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"6df64380df6015d8778d4420ca5c156a","responseTime":42,"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":"897d60474eb91200a97934a7bb33c2b0","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/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":"897d60474eb91200a97934a7bb33c2b0"} device-1 | {"level":"info","message":"OPTIONS /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/websocket 200 1ms","method":"OPTIONS","requestID":"897d60474eb91200a97934a7bb33c2b0","responseTime":1,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dbdd226f4b478c134a6c38c7ee1a4f52","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.746786,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbdd226f4b478c134a6c38c7ee1a4f52"},"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":"ddf68792bd2aa44ef9d2343b5a578165","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b2805841-ab26-43a9-b220-53d6df9d0b51/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":"ddf68792bd2aa44ef9d2343b5a578165"} device-1 | {"level":"info","message":"OPTIONS /devices/b2805841-ab26-43a9-b220-53d6df9d0b51/websocket 200 1ms","method":"OPTIONS","requestID":"ddf68792bd2aa44ef9d2343b5a578165","responseTime":1,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6f77ff321d1fcb8fe672686764860b66","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.084552,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6f77ff321d1fcb8fe672686764860b66"},"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":"21/May/2024:16:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/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":"dbdd226f4b478c134a6c38c7ee1a4f52"} device-1 | {"level":"info","message":"POST /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/websocket 200 34ms","method":"POST","requestID":"dbdd226f4b478c134a6c38c7ee1a4f52","responseTime":34,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b2805841-ab26-43a9-b220-53d6df9d0b51/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.030","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6f77ff321d1fcb8fe672686764860b66"} device-1 | {"level":"info","message":"POST /devices/b2805841-ab26-43a9-b220-53d6df9d0b51/websocket 200 27ms","method":"POST","requestID":"6f77ff321d1fcb8fe672686764860b66","responseTime":27,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0918a14dcdc1579e2b9a4f013ff5febf","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.17757,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0918a14dcdc1579e2b9a4f013ff5febf"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.851783079Z"}]},"request_id":"ddc719d0-301e-492f-bb75-cac88930b672","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308138.9040837} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0918a14dcdc1579e2b9a4f013ff5febf"},"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":"21/May/2024:16:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2805841-ab26-43a9-b220-53d6df9d0b51? 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":"0918a14dcdc1579e2b9a4f013ff5febf"} device-1 | {"level":"info","message":"GET /devices/b2805841-ab26-43a9-b220-53d6df9d0b51? 200 13ms","method":"GET","requestID":"0918a14dcdc1579e2b9a4f013ff5febf","responseTime":13,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8d463fb9b318e9bacaafdfe3d6143f6f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.750165,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} 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":"8d463fb9b318e9bacaafdfe3d6143f6f"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.899339676Z"}]},"request_id":"c7c270ba-c154-4ca0-b0b3-9e80f76de201","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308138.9186954} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8d463fb9b318e9bacaafdfe3d6143f6f"},"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":"21/May/2024:16:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82? 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":"8d463fb9b318e9bacaafdfe3d6143f6f"} device-1 | {"level":"info","message":"GET /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82? 200 11ms","method":"GET","requestID":"8d463fb9b318e9bacaafdfe3d6143f6f","responseTime":11,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0ba0b68f447bcfc61c5d8b48593d5f4b","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:47510","level":"info","msg":"Received request.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.66092,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} 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":"0ba0b68f447bcfc61c5d8b48593d5f4b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"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:47510","level":"info","msg":"Received request.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.096772,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5cfd33a0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Received request.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Sent response.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.178271,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} 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":"5cfd81c0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.851783079Z"}]},"request_id":"be388192-017e-40b7-a12b-4ce50d4618c0","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308138.9811065} 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":"5cfd33a0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.899339676Z"}]},"request_id":"793aebb2-ac1a-470d-b60e-5dacda1f876b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308138.9864304} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b2805841-ab26-43a9-b220-53d6df9d0b51? 200 17ms","method":"GET","requestID":"5cfd33a0-178d-11ef-9e06-b78ba83e54a6","responseTime":17,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5cfd81c0-178d-11ef-9e06-b78ba83e54a6"},"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/eaeadc2e-0508-47b5-b8f7-ce2e78826b82? 200 19ms","method":"GET","requestID":"5cfd81c0-178d-11ef-9e06-b78ba83e54a6","responseTime":19,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"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/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.726171,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d094190-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Received request.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Sent response.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.669825,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} 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":"5d098fb0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d792cd7a-5a51-4149-8091-b306e4a8d102","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.0618336} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.95447,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","rebac_allow":false,"scope_allow":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":"5d09ddd0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.851783079Z"}]},"request_id":"aa1d58a2-cc70-4a5e-b57b-953ce477372e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.0651324} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling 200 16ms","method":"POST","requestID":"5d09ddd0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d094190-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.899339676Z"}]},"request_id":"fe9cbc05-a2dc-4bad-99d4-1ed6ff81f5be","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.068746} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d098fb0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f1706ac-7844-4568-92ac-1c3f886c4bce#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f1706ac-7844-4568-92ac-1c3f886c4bce","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"ef47d636-141c-4453-aef8-04c62dd64a80","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.0740864} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2029a8e-fbe7-42b6-9764-9b50828c9106","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.0746386} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/b2805841-ab26-43a9-b220-53d6df9d0b51? 200 28ms","method":"GET","requestID":"5d094190-178d-11ef-9e06-b78ba83e54a6","responseTime":28,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0ba0b68f447bcfc61c5d8b48593d5f4b"},"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:47510","level":"info","msg":"Received request.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} device-1 | {"level":"info","message":"GET /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82? 200 27ms","method":"GET","requestID":"5d098fb0-178d-11ef-9e06-b78ba83e54a6","responseTime":27,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"35240773-64c8-4110-82c0-bc720918f52e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.080148} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.66592,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","rebac_allow":false,"scope_allow":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":"5d0ceb10-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling 200 16ms","method":"POST","requestID":"5d0ceb10-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.167","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ba0b68f447bcfc61c5d8b48593d5f4b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 161ms","method":"POST","requestID":"0ba0b68f447bcfc61c5d8b48593d5f4b","responseTime":161,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e2d905af-9459-4279-9d2e-226dd33478da","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.0924618} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.452823,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","rebac_allow":false,"scope_allow":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":"5d0ee6e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling 200 12ms","method":"POST","requestID":"5d0ee6e0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cbead1bfafc0f817699e09beda3faa61","responseTime":4,"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:47510","level":"info","msg":"Received request.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.022825,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308139,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbead1bfafc0f817699e09beda3faa61"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Received request.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"77540d1e-95f5-49e9-9c72-7ee0670b9f5c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.1072965} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Sent response.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.331643,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","rebac_allow":false,"scope_allow":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":"5d1109c0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.851783079Z"}]},"request_id":"d488ce91-66e8-4554-b3f3-a6a9b3d44ded","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.1102655} 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":"cbead1bfafc0f817699e09beda3faa61"},"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/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling 200 16ms","method":"POST","requestID":"5d1109c0-178d-11ef-9e06-b78ba83e54a6","responseTime":16,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Attempting to create peerconnections for experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2805841-ab26-43a9-b220-53d6df9d0b51? 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":"cbead1bfafc0f817699e09beda3faa61"} device-1 | {"level":"info","message":"GET /devices/b2805841-ab26-43a9-b220-53d6df9d0b51? 200 18ms","method":"GET","requestID":"cbead1bfafc0f817699e09beda3faa61","responseTime":18,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"a1aee5c0-8d14-496d-8db6-54004d5d92ec"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"87164fce-ee24-46b7-9a16-129c61bd19ad"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"97f0e72f-e76e-4e9d-8e99-2edc6e6a5544"}]},"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/eaeadc2e-0508-47b5-b8f7-ce2e78826b82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7289ff399dbe124b29517a6aef5d6066","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.165107,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308138,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOH0.15bf8qfIXhNDm-cGNSM0HkagI-BgTy-tp1MandGd4WA"} 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":"5d13c8e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.756141,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308139,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY"} 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":"7289ff399dbe124b29517a6aef5d6066"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:36.899339676Z"}]},"request_id":"883cf21d-4c5b-4cc5-b793-aaddb2e91a4c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.1320143} 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":"7289ff399dbe124b29517a6aef5d6066"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"f96b3f16-aad4-479b-8199-c80068d8f119","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.1337252} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c723a178-8e0c-4a85-846f-94a2c6370d03","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.133965} 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":"5d13c8e0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82? 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":"7289ff399dbe124b29517a6aef5d6066"} device-1 | {"level":"info","message":"GET /devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82? 200 15ms","method":"GET","requestID":"7289ff399dbe124b29517a6aef5d6066","responseTime":15,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82?"} 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/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"5d13c8e0-178d-11ef-9e06-b78ba83e54a6","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"caccde90-00b3-4cda-ae85-85a258a565db","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.1967955} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.497292,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","rebac_allow":false,"scope_allow":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":"5d1f1380-178d-11ef-9e06-b78ba83e54a6"},"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/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling 200 9ms","method":"POST","requestID":"5d1f1380-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"46aeaae5-fc8f-44d3-a51d-e9528670f1fe","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.2081366} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.808938,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","rebac_allow":false,"scope_allow":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":"5d20c130-178d-11ef-9e06-b78ba83e54a6"},"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/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling 200 10ms","method":"POST","requestID":"5d20c130-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1d5faf5694fa8f3d725cf4e6fb59a1e2","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"1d5faf5694fa8f3d725cf4e6fb59a1e2","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"1d5faf5694fa8f3d725cf4e6fb59a1e2"} device-1 | {"data":{"peerconnection":"2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","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/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","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":"1a175648010a380b93bd626b23a39859","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/eaeadc2e-0508-47b5-b8f7-ce2e78826b82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91d46284-be19-4413-a185-0ba56ee4c25e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.2932076} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.698528,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","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":"5d2de090-178d-11ef-9e06-b78ba83e54a6"},"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/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701 200 8ms","method":"GET","requestID":"5d2de090-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 25ms","method":"POST","requestID":"1a175648010a380b93bd626b23a39859","responseTime":25,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch","requestID":"1a175648010a380b93bd626b23a39859"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a910e6da-65e2-4f91-991f-7ce337b36968","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.314205} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.216857,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","rebac_allow":false,"scope_allow":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":"5d3114e0-178d-11ef-9e06-b78ba83e54a6"},"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/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling 200 8ms","method":"POST","requestID":"5d3114e0-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fd765052-bc2f-417f-90c6-11a3403a22cc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.3233848} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.070152,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d327470-178d-11ef-9e06-b78ba83e54a6"},"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/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling 200 8ms","method":"POST","requestID":"5d327470-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7f807a847612e58ba780553a62ad1e9a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.701591,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308139,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY"} 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":"7f807a847612e58ba780553a62ad1e9a"},"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/1f1706ac-7844-4568-92ac-1c3f886c4bce"} experiment-1 | {"level":"info","message":"GET /experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce 200 8ms","method":"GET","requestID":"7f807a847612e58ba780553a62ad1e9a","responseTime":8,"status":200,"url":"/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7f807a847612e58ba780553a62ad1e9a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"05bc2ad65df650763a927c129b9e3b9d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.682169,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308139,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"454","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"05bc2ad65df650763a927c129b9e3b9d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.758157,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308139,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d39a060-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2622a705-0a1d-4f36-8b0a-fc9bcdb3d701': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"8e9673d0-f91d-48a5-8046-db06fbfb6511","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.379537} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"375aa8b0-4809-4c2b-8c55-d1a48500f962","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.3799} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a3a6def12814bf19a287f93a43a75e6b","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d39a060-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9850b3ee98d52b72e87de6f15640e90a","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/eaeadc2e-0508-47b5-b8f7-ce2e78826b82"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"2622a705-0a1d-4f36-8b0a-fc9bcdb3d701","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/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701 204 42ms","method":"DELETE","requestID":"5d39a060-178d-11ef-9e06-b78ba83e54a6","responseTime":42,"status":204,"url":"/peerconnections/2622a705-0a1d-4f36-8b0a-fc9bcdb3d701"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feaeadc2e-0508-47b5-b8f7-ce2e78826b82","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fc442b77-6fc4-46ce-b194-662257e03940","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.42737} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.400297,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82","object_type":"device","rebac_allow":false,"scope_allow":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":"5d4252f0-178d-11ef-9e06-b78ba83e54a6"},"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/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling 200 8ms","method":"POST","requestID":"5d4252f0-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f1706ac-7844-4568-92ac-1c3f886c4bce': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f1706ac-7844-4568-92ac-1c3f886c4bce","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"b8a8581b-caaf-40a2-a01b-4c0f1cca236c","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.4348142} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"04f7367b-181c-47fb-88c5-02ad35122735","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.434947} 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":"05bc2ad65df650763a927c129b9e3b9d"},"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:47510","level":"info","msg":"Received request.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2805841-ab26-43a9-b220-53d6df9d0b51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"95805c04-bbd6-478c-8e65-a44897ad88b9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.4376736} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.343704,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51","object_type":"device","rebac_allow":false,"scope_allow":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":"5d43d990-178d-11ef-9e06-b78ba83e54a6"},"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/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling 200 9ms","method":"POST","requestID":"5d43d990-178d-11ef-9e06-b78ba83e54a6","responseTime":9,"status":200,"url":"/devices/b2805841-ab26-43a9-b220-53d6df9d0b51/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.131","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"05bc2ad65df650763a927c129b9e3b9d"} experiment-1 | {"level":"info","message":"DELETE /experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce 204 129ms","method":"DELETE","requestID":"05bc2ad65df650763a927c129b9e3b9d","responseTime":129,"status":204,"url":"/experiments/1f1706ac-7844-4568-92ac-1c3f886c4bce"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 106ms","method":"POST","requestID":"a3a6def12814bf19a287f93a43a75e6b","responseTime":106,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.109","http_referrer":"","http_user_agent":"node-fetch","requestID":"a3a6def12814bf19a287f93a43a75e6b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 106ms","method":"POST","requestID":"9850b3ee98d52b72e87de6f15640e90a","responseTime":106,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.110","http_referrer":"","http_user_agent":"node-fetch","requestID":"9850b3ee98d52b72e87de6f15640e90a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e878894747f3cbc04a999d0edf11d4ac","responseTime":6,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2646","request_time":"0.635","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8da2a36e977ea0f61fcae9e65c8a8f6d"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.922848,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2646","request_time":"0.628","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ee0baa58c663c9b8452c69f9256c1c58"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308139,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b2805841-ab26-43a9-b220-53d6df9d0b51' closed"} 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":"e878894747f3cbc04a999d0edf11d4ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/eaeadc2e-0508-47b5-b8f7-ce2e78826b82' 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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fba7eed46-c077-4125-8808-90104604901b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0a158a53-4722-488d-a382-f5554ef79668","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5208259} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e878894747f3cbc04a999d0edf11d4ac"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5a217b47-0be1-4a3f-bedd-e3292b50602a","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5244052} 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":"e878894747f3cbc04a999d0edf11d4ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fba7eed46-c077-4125-8808-90104604901b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"729458aa-a925-4dc3-bb42-5e7571f58ba2","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5335677} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"df7b24af-28cb-43fb-950f-10eb98b2a570","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5338387} 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":"e878894747f3cbc04a999d0edf11d4ac"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fba7eed46-c077-4125-8808-90104604901b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fba7eed46-c077-4125-8808-90104604901b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:39.533533925Z"}]},"request_id":"7e844f0f-5965-401c-bccb-64fc44c62790","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5371277} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e878894747f3cbc04a999d0edf11d4ac"},"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":"21/May/2024:16:15:39 +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":"e878894747f3cbc04a999d0edf11d4ac"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"e878894747f3cbc04a999d0edf11d4ac","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f02e7b037e90d8032f638ccebb76a011","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.653541,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308139,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODEzOX0.A6PhkfDCKJ7Yhcti96_tXikuCl55FvUsnZCOER_V9nY"} 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":"f02e7b037e90d8032f638ccebb76a011"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b25c4b63-1500-4f4c-99af-e973d02fe338","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5594962} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f02e7b037e90d8032f638ccebb76a011"},"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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8a905637-b783-4b18-aeeb-f7fb5f2f89dd","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.563123} 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":"f02e7b037e90d8032f638ccebb76a011"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"eec5869e-a939-4f73-b99c-9616a1d51691","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5752687} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b9f4d500-a604-4d40-a51b-128573dc5d57","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5753593} 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":"f02e7b037e90d8032f638ccebb76a011"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:39.575240431Z"}]},"request_id":"7705dd72-b10d-4cb6-a1e8-be86a8baf074","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308139.5784986} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f02e7b037e90d8032f638ccebb76a011"},"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":"f02e7b037e90d8032f638ccebb76a011","responseTime":36,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"21/May/2024:16:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f02e7b037e90d8032f638ccebb76a011"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fb6c3e4a68f0498ea465e21acf189b68","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4a633f42-c9da-491e-985c-24941a6cc519/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":"fb6c3e4a68f0498ea465e21acf189b68"} device-1 | {"level":"info","message":"OPTIONS /devices/4a633f42-c9da-491e-985c-24941a6cc519/websocket 200 1ms","method":"OPTIONS","requestID":"fb6c3e4a68f0498ea465e21acf189b68","responseTime":1,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2b58d9614bef8925054ed0b65ec20a99","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.261584,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b58d9614bef8925054ed0b65ec20a99"},"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":"21/May/2024:16:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4a633f42-c9da-491e-985c-24941a6cc519/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2b58d9614bef8925054ed0b65ec20a99"} device-1 | {"level":"info","message":"POST /devices/4a633f42-c9da-491e-985c-24941a6cc519/websocket 200 36ms","method":"POST","requestID":"2b58d9614bef8925054ed0b65ec20a99","responseTime":36,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6e6bef9a15e1744e36f803ba9b35e3ef","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.366125,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e6bef9a15e1744e36f803ba9b35e3ef"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:39.575240431Z"}]},"request_id":"9cc42acf-788e-47bc-8275-5c294a861745","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.6385095} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e6bef9a15e1744e36f803ba9b35e3ef"},"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/4a633f42-c9da-491e-985c-24941a6cc519? 200 16ms","method":"GET","requestID":"6e6bef9a15e1744e36f803ba9b35e3ef","responseTime":16,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519?"} gateway-1 | {"time_local":"21/May/2024:16:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4a633f42-c9da-491e-985c-24941a6cc519? 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":"6e6bef9a15e1744e36f803ba9b35e3ef"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5202ee306afccac06e7b542e3b74952c","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:47510","level":"info","msg":"Received request.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.523989,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} 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":"5202ee306afccac06e7b542e3b74952c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"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:47510","level":"info","msg":"Received request.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.325098,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Received request.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ba7eed46-c077-4125-8808-90104604901b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/ba7eed46-c077-4125-8808-90104604901b","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e9f23d0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Sent response.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.106178,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e9f4ae0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fba7eed46-c077-4125-8808-90104604901b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fba7eed46-c077-4125-8808-90104604901b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:39.533533925Z"}]},"request_id":"cb80e4ba-4347-43b5-8092-c05c369f57cc","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.719167} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e9f23d0-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:39.575240431Z"}]},"request_id":"e9bde232-7275-41df-9f5d-cdfe99dd0f17","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.7203982} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e9f4ae0-178d-11ef-9e06-b78ba83e54a6"},"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/ba7eed46-c077-4125-8808-90104604901b? 200 15ms","method":"GET","requestID":"5e9f23d0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/ba7eed46-c077-4125-8808-90104604901b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4a633f42-c9da-491e-985c-24941a6cc519? 200 15ms","method":"GET","requestID":"5e9f4ae0-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Attempting to instantiate devices for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.815357,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/ba7eed46-c077-4125-8808-90104604901b","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/ba7eed46-c077-4125-8808-90104604901b","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} 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":"5ea42ce0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"d4229cf1-b86b-468e-9529-c11b53eeb456","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.7695878} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a849812f-26a5-47af-bd56-6b0cebe65e15","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.769826} 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":"5ea42ce0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded"} authentication-1 | {"level":"info","message":"POST /token 201 20ms","method":"POST","requestID":"5ea9f940-178d-11ef-aa9e-87ae16262811","responseTime":20,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/ba7eed46-c077-4125-8808-90104604901b?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 65ms","method":"POST","requestID":"5ea42ce0-178d-11ef-9e06-b78ba83e54a6","responseTime":65,"status":201,"url":"/devices/ba7eed46-c077-4125-8808-90104604901b?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"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/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.768242,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Received request.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5eb65550-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48026","level":"info","msg":"Sent response.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.015344,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} 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":"5eb6a370-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:41.769556528Z"}]},"request_id":"75175819-ac7c-48a1-ada9-676137da4b62","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.8755693} 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":"5eb65550-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:39.575240431Z"}]},"request_id":"da248ebe-83c2-4fda-9d79-f70540fed71b","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.8776207} authorization-1 | {"client_addr":"127.0.0.1:36042","level":"info","msg":"Received request.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} 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":"5eb6a370-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8bd81982-6398-4379-bdf7-e324fb529318","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.8800037} authorization-1 | {"client_addr":"127.0.0.1:36042","level":"info","msg":"Sent response.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.162526,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d? 200 22ms","method":"GET","requestID":"5eb65550-178d-11ef-9e06-b78ba83e54a6","responseTime":22,"status":200,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","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/4a633f42-c9da-491e-985c-24941a6cc519? 200 21ms","method":"GET","requestID":"5eb6a370-178d-11ef-9e06-b78ba83e54a6","responseTime":21,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519?"} 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":"5eb6ca80-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c215f169-a0ca-47d3-a716-6df8579cbcf9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.884096} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb666a40f-2a55-4d30-adde-7e6ca622d684#owner@http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb666a40f-2a55-4d30-adde-7e6ca622d684","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"128bfd40-33bd-42ea-9440-5fa6bb133774","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.8839803} 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":"5202ee306afccac06e7b542e3b74952c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"error":"MissingEntityError","message":"Could not find websocket connection for device 90a7d274-4628-4dd1-ac6b-49b0f6ac833d","method":"POST","stack":"MissingEntityError: Could not find websocket connection for device 90a7d274-4628-4dd1-ac6b-49b0f6ac833d\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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"5eb6ca80-178d-11ef-9e06-b78ba83e54a6"} device-1 | {"level":"info","message":"POST /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling 404 24ms","method":"POST","requestID":"5eb6ca80-178d-11ef-9e06-b78ba83e54a6","responseTime":24,"status":404,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling"} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"Could not find websocket connection for device 90a7d274-4628-4dd1-ac6b-49b0f6ac833d"},"status":404}},"level":"error","message":"Could not send status-update message"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:41Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684","user":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"21/May/2024:16:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.249","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5202ee306afccac06e7b542e3b74952c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 242ms","method":"POST","requestID":"5202ee306afccac06e7b542e3b74952c","responseTime":242,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"89978179-c8d3-4550-bd2b-a7aea36525c6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308141.8972583} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.40001,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","rebac_allow":false,"scope_allow":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":"5ebb1040-178d-11ef-9e06-b78ba83e54a6"},"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/4a633f42-c9da-491e-985c-24941a6cc519/signaling 200 10ms","method":"POST","requestID":"5ebb1040-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519/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 2ms","method":"GET","requestID":"242d5cbf2e602e680b57d88ee9d4f7cc","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"21/May/2024:16:15:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/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":"242d5cbf2e602e680b57d88ee9d4f7cc"} device-1 | {"level":"info","message":"OPTIONS /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/websocket 200 2ms","method":"OPTIONS","requestID":"242d5cbf2e602e680b57d88ee9d4f7cc","responseTime":2,"status":200,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Imsybm9iNTdFampyWVcyeGZyVTdGaEt6SmJSejc5SkpRSTY2c2VrYTBEalJaWjlKUUgxTHkzakpJSHFJWG5WSm04SFltMzVJQmxoZTVCemFuTFViVFRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0M30.ZdaJcvTzMY8kbPs49L6On-OdJwn2-I7vnx3zeaY2Wwg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"88063b9e8e5421e6ca360a6451a2d5f7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:43Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.297365,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","payload":{"admin":true,"edgeToken":"k2nob57EjjrYW2xfrU7FhKzJbRz79JJQI66seka0DjRZZ9JQH1Ly3jJIHqIXnVJm8HYm35IBlhe5BzanLUbTTQ","iat":1716308143,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Imsybm9iNTdFampyWVcyeGZyVTdGaEt6SmJSejc5SkpRSTY2c2VrYTBEalJaWjlKUUgxTHkzakpJSHFJWG5WSm04SFltMzVJQmxoZTVCemFuTFViVFRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0M30.ZdaJcvTzMY8kbPs49L6On-OdJwn2-I7vnx3zeaY2Wwg"} 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":"88063b9e8e5421e6ca360a6451a2d5f7"},"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":"21/May/2024:16:15:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/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":"88063b9e8e5421e6ca360a6451a2d5f7"} device-1 | {"level":"info","message":"POST /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/websocket 200 35ms","method":"POST","requestID":"88063b9e8e5421e6ca360a6451a2d5f7","responseTime":35,"status":200,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/websocket"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d' 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":"ff27ff950654144877cd0cc7d0dd660d","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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0M30.YFx70aXKf4Xc536hNeMMAnmRjDGO6Ma3apd157GU_w0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"2642104912409cfc47a969cfaaeb3a14","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:43Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.793867,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308143,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0M30.YFx70aXKf4Xc536hNeMMAnmRjDGO6Ma3apd157GU_w0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2642104912409cfc47a969cfaaeb3a14"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:41.769556528Z"}]},"request_id":"66c31f83-f44b-4ff7-aa97-cab4b4dd51a6","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308143.9445662} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2642104912409cfc47a969cfaaeb3a14"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 21ms","method":"POST","requestID":"ff27ff950654144877cd0cc7d0dd660d","responseTime":21,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15: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.025","http_referrer":"","http_user_agent":"node-fetch","requestID":"ff27ff950654144877cd0cc7d0dd660d"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d? 200 19ms","method":"GET","requestID":"2642104912409cfc47a969cfaaeb3a14","responseTime":19,"status":200,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d?"} gateway-1 | {"time_local":"21/May/2024:16:15:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d? 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":"2642104912409cfc47a969cfaaeb3a14"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0M30.YFx70aXKf4Xc536hNeMMAnmRjDGO6Ma3apd157GU_w0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"17195824f3a8ec80d102ac08cc019463","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:43Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.347442,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308143,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0M30.YFx70aXKf4Xc536hNeMMAnmRjDGO6Ma3apd157GU_w0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"17195824f3a8ec80d102ac08cc019463"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:39.575240431Z"}]},"request_id":"47b12b11-157b-4e43-9c99-a436281835aa","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308143.9715474} 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":"17195824f3a8ec80d102ac08cc019463"},"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":"21/May/2024:16:15:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4a633f42-c9da-491e-985c-24941a6cc519? 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":"17195824f3a8ec80d102ac08cc019463"} device-1 | {"level":"info","message":"GET /devices/4a633f42-c9da-491e-985c-24941a6cc519? 200 17ms","method":"GET","requestID":"17195824f3a8ec80d102ac08cc019463","responseTime":17,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.295411,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} 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":"61b53d70-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:36044","level":"info","msg":"Received request.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"client_addr":"127.0.0.1:36044","level":"info","msg":"Sent response.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.848699,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} 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":"61b58b90-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:41.769556528Z"}]},"request_id":"c7e1268d-f254-4f2a-b84f-91a344d89eef","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308146.904636} 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":"61b53d70-178d-11ef-9e06-b78ba83e54a6"},"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:55074","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"},"timestamp":"2024-05-21T16:15:39.575240431Z"}]},"request_id":"d5a3a12d-ac85-4c93-8cd7-bb4d62a9c63d","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308146.9059508} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61b58b90-178d-11ef-9e06-b78ba83e54a6"},"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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d? 200 26ms","method":"GET","requestID":"61b53d70-178d-11ef-9e06-b78ba83e54a6","responseTime":26,"status":200,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4a633f42-c9da-491e-985c-24941a6cc519? 200 25ms","method":"GET","requestID":"61b58b90-178d-11ef-9e06-b78ba83e54a6","responseTime":25,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c7db905d-ea80-422f-8bdd-52c261796260","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308146.9254367} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.424154,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","rebac_allow":false,"scope_allow":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":"61b9d150-178d-11ef-9e06-b78ba83e54a6"},"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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling 200 15ms","method":"POST","requestID":"61b9d150-178d-11ef-9e06-b78ba83e54a6","responseTime":15,"status":200,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a95a0e0-b999-452f-a78e-29972cebfa7e","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308146.9422538} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.832294,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","rebac_allow":false,"scope_allow":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":"61bcb780-178d-11ef-9e06-b78ba83e54a6"},"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/4a633f42-c9da-491e-985c-24941a6cc519/signaling 200 13ms","method":"POST","requestID":"61bcb780-178d-11ef-9e06-b78ba83e54a6","responseTime":13,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"01667a98-7ee6-4895-bd77-ea16abd82c60"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"04a8fe23-608b-43f6-b00d-65b10fd8431f"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d7dd1030-f2bb-44d1-8176-3bbd940826a1"}]},"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/4a633f42-c9da-491e-985c-24941a6cc519"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.175154,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308141,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0MX0.3vmXcpsWQFa_BHfwqB6xE-vjTjrJtuTj4KIxKHqmweQ"} 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":"61bf4f90-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","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%2F3e288130-2c49-4ddf-b2d6-92a872332d0a'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]}},"raw_response":{},"request_id":"b2ce78b0-f1e3-436c-8158-e4012b0db855","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308146.9702024} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fef04208-3d2c-46b3-b1ed-0cbf6d5aaf86","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308146.9704738} 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":"61bf4f90-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0'"} 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":"61bf4f90-178d-11ef-9e06-b78ba83e54a6","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/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b3914131-88b6-440a-93ed-476f756c5d77","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.0317092} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.258995,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","rebac_allow":false,"scope_allow":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":"61ca9a30-178d-11ef-9e06-b78ba83e54a6"},"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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling 200 8ms","method":"POST","requestID":"61ca9a30-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bfea6e4d-444b-458a-bde4-9bc958c69e7f","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.0430777} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.07307,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","rebac_allow":false,"scope_allow":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":"61cc47e0-178d-11ef-9e06-b78ba83e54a6"},"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/4a633f42-c9da-491e-985c-24941a6cc519/signaling 200 10ms","method":"POST","requestID":"61cc47e0-178d-11ef-9e06-b78ba83e54a6","responseTime":10,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519'"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0cb4981e-d233-4908-ac77-2325bc6200e0","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"90719807a6a2e325be2ec5566a8d1f82","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"90719807a6a2e325be2ec5566a8d1f82"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"90719807a6a2e325be2ec5566a8d1f82","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"peerconnection":"0cb4981e-d233-4908-ac77-2325bc6200e0","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"0cb4981e-d233-4908-ac77-2325bc6200e0","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/0cb4981e-d233-4908-ac77-2325bc6200e0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0cb4981e-d233-4908-ac77-2325bc6200e0","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":"36a8822fa53773f4a4752db34c973f9b","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/4a633f42-c9da-491e-985c-24941a6cc519"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0cb4981e-d233-4908-ac77-2325bc6200e0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b3b84f34-844d-447a-a790-57298dad8368","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.1259449} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.16554,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0","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":"61d91920-178d-11ef-9e06-b78ba83e54a6"},"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/0cb4981e-d233-4908-ac77-2325bc6200e0 200 7ms","method":"GET","requestID":"61d91920-178d-11ef-9e06-b78ba83e54a6","responseTime":7,"status":200,"url":"/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 24ms","method":"POST","requestID":"36a8822fa53773f4a4752db34c973f9b","responseTime":24,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch","requestID":"36a8822fa53773f4a4752db34c973f9b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bf956d70-2d76-4a4c-97b6-1de5184efb73","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.1466873} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.128181,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","rebac_allow":false,"scope_allow":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":"61dc2660-178d-11ef-9e06-b78ba83e54a6"},"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/4a633f42-c9da-491e-985c-24941a6cc519/signaling 200 8ms","method":"POST","requestID":"61dc2660-178d-11ef-9e06-b78ba83e54a6","responseTime":8,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8456a69a-0898-4027-804e-2e2a9edcc2be","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.1556404} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.221805,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","rebac_allow":false,"scope_allow":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":"61ddad00-178d-11ef-9e06-b78ba83e54a6"},"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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling 200 7ms","method":"POST","requestID":"61ddad00-178d-11ef-9e06-b78ba83e54a6","responseTime":7,"status":200,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0N30.CAhVmBcTs8WJ29sQAPk5Zfo_c7Wp4wb9ZsECIX49EMg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cc6830bcfa9b3462cdd916f892289f28","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.758747,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308147,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0N30.CAhVmBcTs8WJ29sQAPk5Zfo_c7Wp4wb9ZsECIX49EMg"} 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":"cc6830bcfa9b3462cdd916f892289f28"},"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/b666a40f-2a55-4d30-adde-7e6ca622d684"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b666a40f-2a55-4d30-adde-7e6ca622d684 HTTP/1.1","status": "200","body_bytes_sent":"1180","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cc6830bcfa9b3462cdd916f892289f28"} experiment-1 | {"level":"info","message":"GET /experiments/b666a40f-2a55-4d30-adde-7e6ca622d684 200 9ms","method":"GET","requestID":"cc6830bcfa9b3462cdd916f892289f28","responseTime":9,"status":200,"url":"/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0N30.CAhVmBcTs8WJ29sQAPk5Zfo_c7Wp4wb9ZsECIX49EMg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ae3edb3127a26352ab84e8a7fda5a90e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.94603,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"experiment:http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684","object_type":"experiment","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308147,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0N30.CAhVmBcTs8WJ29sQAPk5Zfo_c7Wp4wb9ZsECIX49EMg"} 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":"ae3edb3127a26352ab84e8a7fda5a90e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.190834,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"peerconnection:http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308147,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0N30.CAhVmBcTs8WJ29sQAPk5Zfo_c7Wp4wb9ZsECIX49EMg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61e85b60-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0cb4981e-d233-4908-ac77-2325bc6200e0","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0cb4981e-d233-4908-ac77-2325bc6200e0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0cb4981e-d233-4908-ac77-2325bc6200e0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"d4bfc0c7-1f0b-41bb-bd3e-4d526190f749","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.2361107} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a6205dea-172c-4890-9b7b-7981e692b5d7","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.2362647} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"35b8a1ecbc1f3f077f7b75107d0a33eb","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61e85b60-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"12eb90c20360752e192069f1866e98f6","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/4a633f42-c9da-491e-985c-24941a6cc519"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0 204 45ms","method":"DELETE","requestID":"61e85b60-178d-11ef-9e06-b78ba83e54a6","responseTime":45,"status":204,"url":"/peerconnections/0cb4981e-d233-4908-ac77-2325bc6200e0"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d'"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.139231,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","payload":{"admin":true,"edgeToken":"oKpFX7twmUwkIqb0tCWA-tkJvRy63OW8OMFD9RFA3Zq49pshkZN1ngoqwwD2jSFsSOfE5M7wpzmxnhZK5rypTA","iat":1716308147,"sub":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a","subject_alt":"http://localhost/users/3e288130-2c49-4ddf-b2d6-92a872332d0a"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNlMjg4MTMwLTJjNDktNGRkZi1iMmQ2LTkyYTg3MjMzMmQwYSIsImVkZ2VUb2tlbiI6Im9LcEZYN3R3bVV3a0lxYjB0Q1dBLXRrSnZSeTYzT1c4T01GRDlSRkEzWnE0OXBzaGtaTjFuZ29xd3dEMmpTRnNTT2ZFNU03d3B6bXhuaFpLNXJ5cFRBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNjMwODE0N30.CAhVmBcTs8WJ29sQAPk5Zfo_c7Wp4wb9ZsECIX49EMg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"446","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"61efae60-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"3a5549e7-3b48-4fcc-8606-b6f1259bcef9","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.2872622} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b3c48e1-003c-4dbf-b07d-8dcbcb4445db","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.2877085} 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":"61efae60-178d-11ef-9e06-b78ba83e54a6"},"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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d 204 32ms","method":"DELETE","requestID":"61efae60-178d-11ef-9e06-b78ba83e54a6","responseTime":32,"status":204,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Received request.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a633f42-c9da-491e-985c-24941a6cc519","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34d0ed28-bddb-4ea4-b87a-1b29b2128115","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.3304121} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.949761,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519","object_type":"device","rebac_allow":false,"scope_allow":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":"61f7ebc0-178d-11ef-9e06-b78ba83e54a6"},"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/4a633f42-c9da-491e-985c-24941a6cc519/signaling 200 12ms","method":"POST","requestID":"61f7ebc0-178d-11ef-9e06-b78ba83e54a6","responseTime":12,"status":200,"url":"/devices/4a633f42-c9da-491e-985c-24941a6cc519/signaling"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb666a40f-2a55-4d30-adde-7e6ca622d684': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb666a40f-2a55-4d30-adde-7e6ca622d684","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3e288130-2c49-4ddf-b2d6-92a872332d0a"}]},"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","writes":null},"raw_response":{},"request_id":"7f4f1b96-e4f8-4ae1-a465-e0742d0c0b09","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.3373818} 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:55074","raw_request":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"raw_response":{"authorization_model":{"id":"01HYDYW1RJSA5CFW6DJ1W36915","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"604af4d5-2315-4f70-a7ac-fd2264432d32","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.3377116} 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":"ae3edb3127a26352ab84e8a7fda5a90e"},"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:47510","level":"info","msg":"Received request.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:55074","raw_request":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","contextual_tuples":null,"store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F90a7d274-4628-4dd1-ac6b-49b0f6ac833d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fab4ede2-656a-4c56-b833-8dc20c161fc4","store_id":"01HYDYW1QG5PN7Y8Z49R3THD6F","subsystem":"openfga","timestamp":1716308147.343629} authorization-1 | {"client_addr":"127.0.0.1:47510","level":"info","msg":"Sent response.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.372593,"resp_status":200,"subsystem":"opa","time":"2024-05-21T16:15:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","openfga":{"authorization_model_id":"01HYDYW1RJSA5CFW6DJ1W36915","store":"01HYDYW1QG5PN7Y8Z49R3THD6F"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d","object_type":"device","rebac_allow":false,"scope_allow":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":"61fa0ea0-178d-11ef-9e06-b78ba83e54a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} 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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"61fa0ea0-178d-11ef-9e06-b78ba83e54a6"} device-1 | {"level":"info","message":"POST /devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/signaling 404 11ms","method":"POST","requestID":"61fa0ea0-178d-11ef-9e06-b78ba83e54a6","responseTime":11,"status":404,"url":"/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d/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/b666a40f-2a55-4d30-adde-7e6ca622d684"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b666a40f-2a55-4d30-adde-7e6ca622d684 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ae3edb3127a26352ab84e8a7fda5a90e"} experiment-1 | {"level":"info","message":"DELETE /experiments/b666a40f-2a55-4d30-adde-7e6ca622d684 204 180ms","method":"DELETE","requestID":"ae3edb3127a26352ab84e8a7fda5a90e","responseTime":180,"status":204,"url":"/experiments/b666a40f-2a55-4d30-adde-7e6ca622d684"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"35b8a1ecbc1f3f077f7b75107d0a33eb","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"35b8a1ecbc1f3f077f7b75107d0a33eb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 155ms","method":"POST","requestID":"12eb90c20360752e192069f1866e98f6","responseTime":155,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"12eb90c20360752e192069f1866e98f6"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2645","request_time":"5.795","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"51d96227c6a47b875bce73e4195c2bca"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2406","request_time":"3.497","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7b0460b0158233afa1e06633383b2b0e"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4a633f42-c9da-491e-985c-24941a6cc519' closed"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/90a7d274-4628-4dd1-ac6b-49b0f6ac833d' 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":"98e6fdf304a721dfae4eff9f065f09d6","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/90a7d274-4628-4dd1-ac6b-49b0f6ac833d"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 3ms","method":"POST","requestID":"98e6fdf304a721dfae4eff9f065f09d6","responseTime":3,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"21/May/2024:16:15:47 +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":"98e6fdf304a721dfae4eff9f065f09d6"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"attempting to shutdown gracefully","subsystem":"openfga","timestamp":1716308152.560963} federation-1 exited with code 0 authentication-1 exited with code 0 device-1 exited with code 0 experiment-1 exited with code 0 authorization-1 exited with code 0 gateway-1 exited with code 0